我一直在为一个WordPress类别存档页面的AJAX‘加载更多’功能工作,这个功能略有不同,尽管客户端只需要Yoast SEO插件设置的‘主要类别’。
我让它在页面加载上正常工作,但当用户单击“加载更多”按钮时,页面会从所有类别加载帖子,而不仅仅是主要类别。它还加载尚未分配到页面类别的帖子。
我在functions.php中使用此函数来获取类别ID:
//get cat ID
function getCurrentCatID(){
global $wp_query;
if(is_category()){
$cat_ID = get_query_var('cat');
}
return $cat_ID;
}可以使用以下命令在category.php中找到变量$current_category_ID:
$current_category_ID = getCurrentCatID();我在category.php上使用以下代码来获取页面加载的前10个帖子:
$args = array(
'meta_key' => '_yoast_wpseo_primary_category',
'meta_value' => $current_category_ID,
'posts_per_page' => 10
);
$query = new WP_Query($args);
//output loop在functions.php中,我使用下面的代码向页面输出一个新的循环,问题是我似乎无法再次将类别ID作为变量获取。
// prepare our arguments for the query
$args = unserialize( stripslashes( $_POST['query'] ) );
$args['paged'] = $_POST['page'] + 1; // we need next page to be loaded
$args['post_status'] = 'publish';
$args['meta_key'] = '_yoast_wpseo_primary_category';
$args['meta_value'] = $cat_ID; //requires variable to be dynamic, hardcoding it works fine
$args['posts_per_page'] = 10;
query_posts( $args );
// new loop在使用$_POST['query']的第二个函数中,我尝试了各种方法(太多了,想不起来了),包括$cat_ID = $_POST['query']; $cat_ID = $_GET['page_id'];或$cat_ID = $_GET['page_id'];。
当我将变量return为functions.php时,我总是得到值0。
任何关于这方面的建议都将不胜感激。
谢谢。
发布于 2018-06-07 19:18:53
我在你的问题中找到了答案。
如何只按主要类别过滤帖子:适用于我
$args = array(
'meta_key' => '_yoast_wpseo_primary_category',
'meta_value' => $current_category_ID,
'posts_per_page' => 10
);谢谢:)
https://stackoverflow.com/questions/45441284
复制相似问题