我在类别存档中使用wp_query,以便我可以使用meta_query忽略具有特定元值的帖子。
问题在于,由于我使用的是wp_query,它似乎忽略了当前正在查看的类别并显示所有类别。
有没有办法检索用户正在查看的类别(可能是由url定义的)并将其插入到wp_query参数数组中?
我见过this suggested solution on stack overflow,但必须有一种更简单的方法,因为当没有使用默认循环时,wordpress会自动显示正确的类别。
目前的代码:
$query = array(
'meta_query' => array(
array(
'key' => 'Display',
'value' => 'Yes',
)
),
'paged'=> $paged
);
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$pageposts = new WP_Query($query);
if ($pageposts):
while ( $pageposts->have_posts() ) : $pageposts->the_post();
答案 0 :(得分:5)
嗯,这是我自己想出的最佳解决方案(使用single_cat_title来设置变量):
$currentCategory = single_cat_title("", false);
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$query = array(
'category_name' => $currentCategory,
'paged'=> $paged,
'posts_per_page' => '15'
);
$pageposts = new WP_Query($query);
答案 1 :(得分:1)
我意识到这是旧的,但我遇到了同样的问题。我使用了类似于你为我的类别存档提出的方法,但我也需要使用WP Query for search.php,这促使我寻找解决方案。 wordpress codex有一种方法可以保留搜索的原始查询,它似乎也适用于类别存档:
<?php
global $query_string;
$query_args = explode("&", $query_string);
$search_query = array();
foreach($query_args as $key => $string) {
$query_split = explode("=", $string);
$search_query[$query_split[0]] = urldecode($query_split[1]);
} // foreach
$search = new WP_Query($search_query);
?>
http://codex.wordpress.org/Creating_a_Search_Page#Preserving_Search_Page_Results_and_Pagination
应该能够只添加你需要的参数并且好好去。