WordPress AJAX - 使用$ _POST

时间:2017-08-01 14:58:33

标签: php ajax wordpress yoast

我一直在为一个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'];变量到functions.php时,我总是得到值return

对此有任何建议将不胜感激。

感谢。

1 个答案:

答案 0 :(得分:0)

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

如何按主要类别过滤帖子:为我工作

$args = array( 
   'meta_key' => '_yoast_wpseo_primary_category',
   'meta_value' => $current_category_ID,
   'posts_per_page' => 10
);

谢谢:)