我一直在尝试通过点击一些图标来创建博客帖子的动态排序。帖子是自定义的帖子类型,并且具有自定义的分类法。
The objective is:<单击(自定义分类法的)类别名称,在下面显示(附加)该类别的帖子。
The problem is:
WP\\u查询不接受参数
success函数的结果是WP\\u查询参数,而不是html对象或js端可用的任何东西。
The flow:
我注册并本地化了脚本:
wp_enqueue_script( \'ajax-pagination\', get_stylesheet_directory_uri() . \'/library/js/ajax-pagination.js\', array( \'jquery\' ), \'1.0\', true );
wp_localize_script( \'ajax-pagination\', \'ajaxpagination\', array(
\'ajaxurl\' => admin_url( \'admin-ajax.php\' )
));
在服务器端,我执行以下操作:
add_action( \'wp_ajax_nopriv_ajax_pagination\', \'my_ajax_pagination\' );
add_action( \'wp_ajax_ajax_pagination\', \'my_ajax_pagination\' );
function my_ajax_pagination() {
$name = $_POST[\'termname\'];
$args = array(
\'post_type\' => \'myposttype\',
\'tax_query\' => array(
array(
\'taxonomy\' => \'mytaxonomyname\',
\'field\' => \'slug\',
\'terms\' => $name
)
)
);
$posts = new WP_Query( $args );
$GLOBALS[\'wp_query\'] = $posts;
if( ! $posts->have_posts() ) {
echo "I don\'t work yet";
}
else {
while ( $posts->have_posts() ) {
$posts->the_post();
$text = apply_filters(\'the_excerpt\',
get_post_field(\'post_excerpt\', $post_id));
echo $text;
}
}
die();
}
在我使用的ajax文件中:
(function($) {
function get_the_category(element){
return element.context.id;
};
$(document).on( \'click\', \'.cat-icons a\', function( event ) {
event.preventDefault();
var termname = get_the_category( $(this).clone() );
$.ajax({
url: ajaxpagination.ajaxurl,
type: \'post\',
data: {
action: \'ajax_pagination\',
termname: termname
},
success: function( html ) {
console.log(html);
//here will do stuf
}
})
})
})(jQuery);
是的,我试着查了一下,没有,我还没有找到答案,我想知道我做错了什么。我不熟悉AJAX和自定义帖子类型。
Questions:
1。如何通过这种方法实现目标
2。方法是否正确&;安全吗
3。那是怎么发生的我明白了$args
回来了
4。我试着用query_vars
但失败了。我找不到tax_query
附加到query_vars
.
非常感谢。