首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WordPress AJAX -使用$_POST的functions.php中的Yoast主类别ID

WordPress AJAX -使用$_POST的functions.php中的Yoast主类别ID
EN

Stack Overflow用户
提问于 2017-08-01 22:58:33
回答 1查看 522关注 0票数 2

我一直在为一个WordPress类别存档页面的AJAX‘加载更多’功能工作,这个功能略有不同,尽管客户端只需要Yoast SEO插件设置的‘主要类别’。

我让它在页面加载上正常工作,但当用户单击“加载更多”按钮时,页面会从所有类别加载帖子,而不仅仅是主要类别。它还加载尚未分配到页面类别的帖子。

我在functions.php中使用此函数来获取类别ID:

代码语言:javascript
复制
//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

代码语言:javascript
复制
$current_category_ID = getCurrentCatID();

我在category.php上使用以下代码来获取页面加载的前10个帖子:

代码语言:javascript
复制
$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作为变量获取。

代码语言:javascript
复制
// 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

任何关于这方面的建议都将不胜感激。

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2018-06-07 19:18:53

我在你的问题中找到了答案。

如何只按主要类别过滤帖子:适用于我

代码语言:javascript
复制
$args = array( 
   'meta_key' => '_yoast_wpseo_primary_category',
   'meta_value' => $current_category_ID,
   'posts_per_page' => 10
);

谢谢:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45441284

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档