Wordpress - Использование wp_query в архиве категорий - как отобразить соответствующую категорию? - PullRequest
3 голосов
/ 21 сентября 2011

Я использую wp_query в архиве категорий, чтобы я мог использовать meta_query для игнорирования сообщений с определенными мета-значениями.

Проблема в том, что, поскольку я использую wp_query, кажется, что игнорируется категория, которая являетсяв настоящее время просматривается и отображается все категории.

Есть ли способ получить категорию (возможно, как определено в URL), которую просматривает пользователь, и вставить ее в массив аргументов wp_query?

Я видел это предлагаемое решение по переполнению стека , но должен быть более простой способ сделать это, поскольку, когда цикл по умолчанию не используется, 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();

Ответы [ 2 ]

5 голосов
/ 12 октября 2011

Ну, это лучшее решение, которое я мог придумать самостоятельно (используя 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 голос
/ 03 ноября 2011

Я понимаю, что это старый, но у меня была та же проблема. Я использовал метод, аналогичный тому, который вы предложили для моего архива категорий, но мне нужно было также использовать WP Query для search.php, что привело меня к поиску решения. Кодекс WordPress имеет способ сохранить исходный запрос для поиска, и, похоже, он работает и для архива категорий:

<?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

Должен быть в состоянии просто добавить нужные аргументы и хорошо подготовиться.

...