Wordpress - 在类别存档中使用 wp_query - 如何显示适当的类别?
Posted
技术标签:
【中文标题】Wordpress - 在类别存档中使用 wp_query - 如何显示适当的类别?【英文标题】:Wordpress - Use wp_query in category archive - how to display the appropriate category? 【发布时间】:2011-09-21 04:52:09 【问题描述】:我在类别存档中使用 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();
【问题讨论】:
【参考方案1】:嗯,这是我自己能想到的最佳解决方案(使用 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);
【讨论】:
显示当前页面类别以及子类别帖子的最佳解决方案。【参考方案2】:我意识到这是旧的,但我遇到了同样的问题。我使用了类似于您为我的类别存档提出的方法,但我也需要使用 WP Query 来搜索 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
应该能够只添加您需要的参数并且一切顺利。
【讨论】:
以上是关于Wordpress - 在类别存档中使用 wp_query - 如何显示适当的类别?的主要内容,如果未能解决你的问题,请参考以下文章
在 Wordpress Datewise 中为特定类别创建存档
填充不包括某些帖子类别的自定义 WordPress 帖子存档