已经尝试解决这个问题好几个小时了。情况是这样的:我正在制作一个插件,使用<!--nextpage-->
标签它工作得很好,但我想通过ajax更改页面。
下面我将展示我是如何做到这一点的,但当内容返回时,没有应用\\u内容过滤器,许多功能也没有显示(我添加的分页,可能还有附加到帖子的主题和其他插件功能)。
以下是我的ajax函数:
jQuery(document).ready(function($) {
$(document).on(\'click\', \'#upp-pagination a\', function(event) {
event.preventDefault();
var page = $(this).parent().attr(\'class\').replace(/\\D/g, \'\');
var postID = $(\'#upp-pagination\').attr(\'class\').replace(/\\D/g, \'\');
$.ajax({
url: upppagination.ajaxurl,
type: \'post\',
data: {
action: \'load_page\',
page: page,
postID: postID
},
success: function (result) {
var newPage = result;
$(\'div.entry-content\').html(newPage);
}
});
});
});
这是后端返回页面的函数:
public function loadPage() {
$postID = $_POST[\'postID\'];
$page = $_POST[\'page\'];
$post = get_post($postID);
$content = $post->post_content;
if ( false !== strpos( $content, \'<!--nextpage-->\' ) ) {
$content = str_replace( "\\n<!--nextpage-->\\n", \'<!--nextpage-->\', $content );
$content = str_replace( "\\n<!--nextpage-->", \'<!--nextpage-->\', $content );
$content = str_replace( "<!--nextpage-->\\n", \'<!--nextpage-->\', $content );
// Ignore nextpage at the beginning of the content.
if ( 0 === strpos( $content, \'<!--nextpage-->\' ) )
$content = substr( $content, 15 );
$pages = explode(\'<!--nextpage-->\', $content);
} else {
$pages = array( $post->post_content );
}
$page = $pages[$page - 1];
$response = apply_filters(\'the_content\', $page);
wp_send_json($response);
}
我是否在这里使用了正确的方法,以及如何应用过滤器?有什么想法吗?