R
R
run1822016-05-15 02:03:58
WordPress
run182, 2016-05-15 02:03:58

How to filter posts by category in wordpress?

Help, please, to understand.
We inherited a code that creates a new taxonomy. It is necessary to set up a filter for the "categories" of posts when outputting.
When I substitute category => tagID into the array, nothing is displayed at all.
Below is the output code for posts:

<?php $posts = get_posts( array(
          'numberposts'     => 10, // тоже самое что posts_per_page
          'offset'          => 0,
          'category'        => 42,
          'orderby'         => 'post_date',
          'order'           => 'DESC',
          'include'         => '',
          'exclude'         => '',
          //'tag'         => 'advert/требуются',
          'post_type'       => 'advert_types',
          'post_mime_type'  => '', // image, video, video/mp4
          'post_parent'     => '',
          'post_status'     => 'publish'
        ) ); 
        foreach($posts as $post){ setup_postdata($post); ?>
          <div class="advert-item">
            <a href="#" class="advert-header"><?php the_title() ?></a>
            <div class="detail-advert-info">(<?php the_time("H:i d.m.Y") ?>)</span></div>
            <div class="advert-detail" style="display: none;">
              <?php the_post_thumbnail('','class=prewiev-anons')?>
              <?php the_content() ?>
            </div>
          </div>
        <?php }
        wp_reset_postdata(); ?>

Here is the code from functions.php:
add_action('init', 'add_advert_types');
function add_advert_types(){
  $labels = array(
    'name' => 'Объявления',
    'singular_name' => 'Объявление', // админ панель Добавить->Функцию
    'add_new' => 'Добавить объявление',
    'add_new_item' => 'Добавить объявление', // заголовок тега <title>
    'edit_item' => 'Изменить объявление',
    'new_item' => 'Новое объявление',
    'all_items' => 'Все объявления',
    'view_item' => 'Просмотр объявления на сайте',
    'search_items' => 'Искать объявление',
    'not_found' =>  'Объявлений не найдено.',
    'not_found_in_trash' => '',
    'menu_name' => 'Частные объявления' // ссылка в меню в админке
  );
  
  $args = array(
    'labels' => $labels,
    'public' => true,
    'menu_position' => 5,
    'has_archive' => true,
    'supports' => array('title','editor', 'thumbnail','excerpt', 'custom-fields'),
    'taxonomy' => array('advert_category'),
  ); 
  
  register_post_type('advert_types', $args );
}
function add_advert_taxonomies(){
  register_taxonomy('advert_category',
    array('advert_types'),
    array(
      'hierarchical' => true,
      /* true - по типу рубрик, false - по типу меток, 
      по умолчанию - false */
      'labels' => array(
        /* ярлыки, нужные при создании UI, можете
        не писать ничего, тогда будут использованы
        ярлыки по умолчанию */
        'name' => 'Категории объявлений',
        'singular_name' => 'Категория объявления',
        'search_items' =>  'Найти по категории',
        'popular_items' => 'Популярные категории',
        'all_items' => 'Все катгеории объявлений',
        'parent_item' => null,
        'parent_item_colon' => null,
        'edit_item' => 'Редактировать категорию', 
        'update_item' => 'Обновить Категорию',
        'add_new_item' => 'Добавить новую категорию объявлений',
        'new_item_name' => 'Название новой категории',
        'separate_items_with_commas' => 'Разделяйте категории запятыми',
        'add_or_remove_items' => 'Добавить или удалить категорию',
        'choose_from_most_used' => 'Выбрать из наиболее часто используемых категорий',
        'menu_name' => 'Категории объявлений'
      ),
      'public' => true, 
      /* каждый может использовать таксономию, либо
      только администраторы, по умолчанию - true */
      'show_in_nav_menus' => true,
      /* добавить на страницу создания меню */
      'show_ui' => true,
      /* добавить интерфейс создания и редактирования */
      'show_tagcloud' => true,
      /* нужно ли разрешить облако тегов для этой таксономии */
      'update_count_callback' => '_update_post_term_count',
      /* callback-функция для обновления счетчика $object_type */
      'query_var' => true,
      /* разрешено ли использование query_var, также можно 
      указать строку, которая будет использоваться в качестве 
      него, по умолчанию - имя таксономии */
      'rewrite' => array(
      /* настройки URL пермалинков */
        'slug' => 'advert', // ярлык
        'hierarchical' => false // разрешить вложенность
 
      ),
    )
  );

}
add_action( 'init', 'add_advert_taxonomies', 0 );

Answer the question

In order to leave comments, you need to log in

1 answer(s)
L
Laid, 2016-05-15
@stoik_kpd

Output via WP_Query and not rack your brains
wp-kama.ru/function/wp_query

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question