Для пользовательских нужд я должен загружать содержимое некоторых сообщений через ajax на пользовательскую страницу шаблона.я использовал apply_filters ('the_content', $ key-> content); , и он отлично работал на моих страницах WordPress.Но когда я обновил версию WP до 4.9.8, он остановился, и ответ ajax - это просто пустая строка для некоторых шорткодов или не полностью загруженный контент для некоторых других.
после некоторого поиска я добавляю этот фрагмент
/ * --- Необходимо, поскольку Visual Compoer V 4.9 --- * / if (class_exists ('WPBMap') && method_exists ('WPBMap', 'addAllMappedShortcodes')) {
WPBMap::addAllMappedShortcodes();
}
else{
do_action( 'template_redirect' );
}
но проблема не была решена!
Мой код:
jQuery.ajax ({url: postdigital.ajax_url, тип: 'post', данные: {action: 'get_activContent_byID_posts', post_id: idContent}, success: function (response) {
// console.log(response+' tesssst');
}
});
add_action ('wp_ajax_nopriv_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
}