我有一个自定义帖子类型的英雄,每个英雄都有一些咒语,咒语图标、名称、描述存储在自定义字段中(通过“自定义字段套件插件”可重复的字段)。
我想做的是显示咒语的名称和图标,当单击图像/名称时,通过ajax获得咒语描述。
我很难对每个咒语进行不同的描述。
这是我到目前为止得到的。
PHP(functions.PHP):
add_action( \'wp_enqueue_scripts\', \'ajax_test_enqueue_scripts\' );
function ajax_test_enqueue_scripts() {
wp_enqueue_script( \'ajax\', get_template_directory_uri() .\'/js/ajax.js\', array(\'jquery\'), \'1.0\', true );
}
add_action( \'wp_ajax_ajax_action\', \'ajax_action\' ); // ajax for logged in users
add_action( \'wp_ajax_nopriv_ajax_action\', \'ajax_action\' ); // ajax for not logged in users
function ajax_action()
{
$fields = CFS()->get(\'spells\', 18);
exit(json_encode($fields)); // stop executing script
}
PHP(模板文件):
$fields = CFS()->get(\'spells\');
foreach ($fields as $field) {
echo \'<div style="overflow:hidden;clear:both"><div style="float:left;padding: 2rem 1rem;width: 125px;" class="click-\'. $field[\'key_id\'] .\'"><img src="\'. $field[\'icon\'].\'"></div>\';
echo \'<span style="float:left;padding: 2rem;width:100%;max-width: 800px;"><strong>\'.$field[\'name\'].\'</strong></span></div>\';
}
Javascript:
jQuery(document).ready(function($)
{
$.ajax({
url: ajaxurl,
data: {
\'action\':\'ajax_action\',
\'post_id\' : 18
},
success:function(data) {
var hero = JSON.parse(data);
for(var i of hero){
$(\'.click-\' + i.key_id).click(function(){
$(\'.changing\').html(hero[1][\'description\']);
})
}
}
});
})
我搞不懂的是如何获得正确拼写的正确描述。
$field[\'key_id\']
是每个咒语的数字1、2、3、4
控制台中的英雄对象。日志http://i.imgur.com/pXaGSgU.png
还有田地http://i.imgur.com/9o7dtRD.png