在Wordpress 4.9.8上通过Ajax获取简码内容失败

时间:2018-09-13 15:01:45

标签: ajax wordpress

对于自定义需求,我应该通过ajax将一些帖子的内容加载到自定义模板页面中。 我使用了 apply_filters('the_content',$ key-> content); ,它在我的wordpress页面上运行良好。但是当我将WP的版本更新为4.9.8时 它已经停止并且ajax响应对于某些短代码而言只是一个空字符串,对于其他一些而言则只是未完全加载的内容。

在搜索后,我添加了此片段

/ *-自Visual Compoer V 4.9起是必需的--- * /     如果(class_exists('WPBMap')  && method_exists('WPBMap',  'addAllMappedShortcodes')){

WPBMap::addAllMappedShortcodes();

}
else{
do_action( 'template_redirect' ); 


}

但是问题没有解决!

我的代码是:

jQuery.ajax({                     网址:postdigital.ajax_url,                     类型:“ post”,                     数据:{                         动作:“ get_activContent_byID_posts”,                         post_id:idContent                     },                     成功:功能(响应){

            //  console.log(response+' tesssst');  

                }  
            });

add_action('wp_ajax_nopriv_get_activContent_byID_posts','get_activContent_byID_posts'); add_action('wp_ajax_get_activContent_byID_posts','get_activContent_byID_posts'); 函数get_activContent_byID_posts(){     全局$ wpdb;

$divContent=$wpdb->get_results("SELECT type, content FROM  `tablename` WHERE id=".$_REQUEST['post_id']);
/* --- Necessary since Visual Compoer V 4.9 --- */
if ( class_exists( 'WPBMap' ) && method_exists( 'WPBMap', 'addAllMappedShortcodes' ) ) {
WPBMap::addAllMappedShortcodes();

}
else{
do_action( 'template_redirect' ); 


}


foreach($divContent as $key) 
{


      $html= apply_filters( 'the_content', $key->content );  




}

echo $html;     

wp_die(); // wp_die() instead of die() provides better integration with WordPress   

}

0 个答案:

没有答案