2013-05-21 2 views
0

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

extract(shortcode_atts(array(
      'categories' => 'Partners', 
      'imageswidth' => '200px', 
      'imagesheight' => '115px', 
      'imageslink' => 'Web_Link', 
      'partnerscount' => 'All', 
      'columnscount' => 1, 
      'imagescrop' => 'No', 
      'imagesblackhovercolor' => 'No', 
      'imagesopacity' => 100, 
      'imagesgrayscale' => 'No', 
      'imagescolorize' => '', 
      'imagesnegative' => 'No', 
      'imagessort' => 'Date ASC' 
     ), $atts)); 

     //$args = "category_name=".categories; 
     //$catIDs = get_cat_ID($cat_name='Partners'); 

     $args = "cat_name=".categories; 
     $args .= strtolower($partnerscount) != "all" ? "&showposts=".$partnerscount : ''; 
     $args .= $imagessort == "Date_ASC" ? "&orderby=date&order=ASC" : ''; 
     $args .= $imagessort == "Date_DSC" ? "&orderby=date&order=DESC" : ''; 
     $args .= $imagessort == "Random" ? "&orderby=rand" : ''; 



     query_posts($args); 

while (have_posts()) : the_post(); 
     { 
$output = $output.get_the_title(); 
} 

ответ

1

Согласно WordPress документов (http://codex.wordpress.org/Class_Reference/WP_Query#Category_Parameters)

Для того, чтобы показать сообщения от определенной категории вы можете использовать следующие параметры:

кошачьи (INT) - категория использования идентификаторов.

category_name (строка) - используйте категорию slug (НЕ имя).

категория__and (массив) - используйте идентификатор категории.

категория__in (массив) - используйте идентификатор категории.

category__not_in (массив) - используйте идентификатор категории.

Правильный параметр: category_name и не cat_name. Замена:

$args = "cat_name=".categories; 

с:

$args = "category_name=".$categories; 

Хотя Partners является slug категории, должны решить вашу проблему.

Edit 1:

Пожалуйста, обратите внимание, Вы писали categories без знака $. PHP рассматривает его как определенный, а не как переменную. Пробуйте эту строку: $ args = "category_name =". $ Categories;

Edit 2: Если вы не можете получить пулю из категории, попытаться получить идентификатор его по имени.

$catID = get_cat_ID($categories); 
    $args = "cat=".$catID; 
+0

когда я пытаюсь category_name это ничего на всех –

+0

не возвращаются Видимо, 'Партнерс не слизняк категории. –

+0

Отредактировав мой ответ, попробуйте предложения Edit1 & Edit2. –