我又有问题了。我编写了一个小JS函数,它可以改变帖子的内容。要将内容传递给函数,我使用以下方法:
function register_and_enqueue_script()
{
wp_register_script( \'js_script\', plugin_dir_url(__FILE__).\'js/script.js\', array(), \'1.8.5\' );
wp_enqueue_script(\'js_script\');
if(\'myPostType\' == get_post_type()) {
$myCustomValue= nl2br(get_post_meta(get_the_ID(), \'custom_value\', true));
wp_localize_script(\'js_script\', \'myCustomValue\', $myCustomValue);
}
}
add_action(\'wp_enqueue_scripts\',\'register_and_enqueue_script\');
只要只显示一个帖子,这项工作就非常好。如果有多个帖子,只有第一个帖子有效,但其他帖子无效。我还用“Console.Log(someInnerHTML)”检查了它,它总是将第一篇文章的内容传递给脚本。
我需要做什么,以便每个帖子都将自己的内容传递给函数?
编辑:谢谢你的回答。我能够保存每个帖子的内容。非常感谢你这么做。但现在我有了下一个问题:
function someunfction()
{
return \'<div>
<div>
<input type="input" onkeyup="doFunction();" "/>
</div>
</div>\' ;
}
我如何确保只有实际帖子的内容在改变?
很抱歉,我提出了很多问题:/
最合适的回答,由SO网友:inarilo 整理而成
Try:
function register_and_enqueue_script()
{
if(\'myPostType\' == get_post_type() && have_posts()) {
wp_register_script( \'js_script\', plugin_dir_url(__FILE__).\'js/script.js\', array(), \'1.8.5\' );
wp_enqueue_script(\'js_script\');
$myCustomValue = array();
while(have_posts()) {
the_post();
$mypostid = get_the_ID();
$myCustomValue[\'\'.$mypostid] = nl2br(get_post_meta($mypostid, \'custom_value\', true));
} // end while
rewind_posts();
wp_localize_script(\'js_script\', \'myCustomValue\', $myCustomValue);
} // end if
}