2017-02-09 2 views
0

Как сделать этот код показывать только «связанные посты по категориям»? Этот код находится внутри «single.php» У меня не было stackoverflow, но не удалось найти решение. Может кто-нибудь мне помочь?Связанные должности категории в wordpress (таксономия)

<?php 
    $postsPerPageq = 5; 

       $allargw = array(
       'post_type' => 'audioplayer', 
       'posts_per_page' => $postsPerPageq, 
       'orderby' => 'title', 
       'order' => 'DESC', 
      'tax_query' => array(
     array(
      'taxonomy' => 'audiotop', 
      'field' => 'slug', 
      'terms' => 'top-audio' 
     ) 
    ) 
      ); 
       $topaudio = new WP_Query($allargw); 
    while ($topaudio->have_posts()) : $topaudio->the_post(); 


    ?> 

<h3><a href="<?php the_permalink(); ?>"><?php the_title();?></a></h3> 


<?php endwhile; wp_reset_postdata();?> 
+1

Проверьте это: - http://wordpress.stackexchange.com/a/41273 ИЛИ http://wordpress.stackexchange.com/questions/30039/how-to-display-related-posts-from-same- Категория –

ответ

0

Добавить название категории в вашем allargw значения массива ..

<?php 
    $postsPerPageq = 5; 

      $allargw = array(
      'post_type' => 'audioplayer', 
      'posts_per_page' => $postsPerPageq, 
      'category_name'=>'Your category name', 
      'orderby' => 'title', 
      'order' => 'DESC', 
     'tax_query' => array(
    array(
     'taxonomy' => 'audiotop', 
     'field' => 'slug', 
     'terms' => 'top-audio' 
    ) 
) 
     ); 
      $topaudio = new WP_Query($allargw); 
while ($topaudio->have_posts()) : $topaudio->the_post(); 


?> 

<h3><a href="<?php the_permalink(); ?>"><?php the_title();?></a></h3> 

Надеется, что это помогает вам !!

Обновленный ответ:

Если вы хотите добавить категорию автоматически, использовать, как это ..

wp_set_object_terms('your_post_id', 'your_category_name', 'your_taxonomy_name'); 

Вы можете попробовать это ..

+0

Привет, но как добавить категорию автоматически? , Пример: пользователь обращается к сообщению категории 1. Затем «связанные записи» будут отображаться только в сообщениях категории 1. «То же самое касается категории 2, категории 3 и т. Д. –

+0

На самом деле вы хотите вставить сообщение и автоматически вставить категорию автоматически – Preethi

0

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

<?php 
    $category = get_the_category($post->ID); 
    $cat_id = $category[0]->term_id; 
    $postsPerPageq = 5; 
    $allargw = array(
       'post_type' => 'audioplayer', 
       'posts_per_page' => $postsPerPageq, 
       'orderby' => 'title', 
       'order' => 'DESC', 
       'cat' => $cat_id 

      ); 
    $topaudio = new WP_Query($allargw); 
    while ($topaudio->have_posts()) : $topaudio->the_post(); ?> 
     <h3><a href="<?php the_permalink(); ?>"><?php the_title();?></a></h3> 
    <?php endwhile; wp_reset_postdata();?> 

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

<?php 
    $term_list = wp_get_post_terms($post->ID, 'audiotop', array("fields" => "all")); 
    $term_id = $term_list[0]->term_id ; 
    $postsPerPageq = 5; 
    $allargw = array(
       'post_type' => 'audioplayer', 
       'posts_per_page' => $postsPerPageq, 
       'orderby' => 'title', 
       'order' => 'DESC', 
       'tax_query' => array(
      array(
       'taxonomy' => 'audiotop', 
       'field' => 'id', 
       'terms' => $term_id 
      ) 
     ) 
    ); 
    $topaudio = new WP_Query($allargw); 
    while ($topaudio->have_posts()) : $topaudio->the_post(); ?> 
     <h3><a href="<?php the_permalink(); ?>"><?php the_title();?></a></h3> 
    <?php endwhile; wp_reset_postdata();?> 

Надеюсь, это поможет вам.

+0

Привет, но как добавить категорию автоматически? Пример: пользователь обращается к категории 1 пост. Затем в «связанных сообщениях» будут автоматически отображаться только сообщения категории 1. То же самое происходит с категорией 2, категорией 3 и т. Д. –

+0

Просьба пояснить одно: каждый пост присваивается только одной категории:. т.е. post1-> category1, post2-> category2, post3-> category1, post4-> category-> 2, а не следующим образом: post1-> category1, category2, post2-> category3, category1, в противном случае будет очень сложно идентифицировать . –

+0

Если каждому сообщению присваивается одна категория, найдите мой обновленный код. –

1

Во-первых, вам нужно, чтобы захватить текущие условия пост с помощью этой функции

get_the_terms (get_the_id(), 'your_custom_taxonomy'); 

тогда вы хватаете термины тихоход для tax_query в вашем WP_Query.

$postsPerPageq = 5; 
$terms_slugs = array(); 

//get the current post terms slug 
$terms = get_the_terms(get_the_id(), 'audiotop'); 
foreach ($terms as $term) { 
    $terms_slugs[] = $term->slug; 
} 

//WP_Query args 
$allargw = array(
    'post_type' => 'audioplayer', 
    'posts_per_page' => $postsPerPageq, 
    'orderby' => 'title', 
    'order'  => 'DESC', 
    'tax_query' => array(
    array(
     'taxonomy' => 'audiotop', 
     'field' => 'slug', 
     'terms' => $terms_slugs, 
    ) 
    ) 
); 

Я надеюсь, что это поможет решить вашу проблему.

Смежные вопросы