За последние 24 часа нас посетили 17860 программистов и 1605 роботов. Сейчас ищут 2094 программиста ...

Php и wordpress: вывод похожих записей

Тема в разделе "PHP для новичков", создана пользователем vodoley213, 7 окт 2015.

  1. vodoley213

    vodoley213 Активный пользователь

    С нами с:
    7 окт 2015
    Сообщения:
    6
    Симпатии:
    0
    Добрый всем день, имеется стандартный код вывода похожих записей на странице Wordpress, который сортирует похожие статьи по тегам. Какую добавку в код нужно сделать, чтобы сортировка выполнялась по всем меткам, КРОМЕ одной, для определенностью кроме метки с ID=100?

    Код (PHP):
    1. <?php
    2. $orig_post = $post;
    3. global $post;
    4. $tags = wp_get_post_tags($post->ID);
    5. if ($tags) {
    6.   $tag_ids = array();
    7.   foreach ($tags as $individual_tag) $tag_ids[] = $individual_tag->term_id;
    8.   $args = array(
    9.     'tag__in' => $tag_ids,
    10.     'post__not_in' => array($post->ID),
    11.     'posts_per_page' => 5, // Number of related posts that will be shown.
    12.     'caller_get_posts' => 1
    13.   );
    14.   $my_query = new wp_query($args);
    15.   if ($my_query->have_posts()) {
    16.     echo '<div id="related_posts" class="clear"><h3>Другие интересные статьи:</h3><ul>';
    17.     while ($my_query->have_posts()) {
    18.       $my_query->the_post(); ?>
    19.       <li>
    20.  
    21.         <?php
    22.         if (has_post_thumbnail()) { ?>
    23.           [url="<?php the_permalink() ?>"]<?php the_title(); ?>[/url]
    24.         <?php } else { ?>
    25.           [url="<?php the_permalink() ?>"]<?php the_title(); ?>[/url]
    26.         <?php }
    27.         ?>
    28.  
    29.  
    30.       </li>
    31.     <?php }
    32.  
    33.     echo '</ul></div>';
    34.   }
    35. }
    36. $post = $orig_post;
    37. wp_reset_query(); ?>
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    попробуй так

    Код (PHP):
    1. $orig_post = $post;
    2. global $post;
    3. $tags = wp_get_post_tags($post->ID);
    4. if ($tags) {
    5.   $tag_ids = array();
    6.   foreach ($tags as $individual_tag) $tag_ids[] = $individual_tag->term_id;
    7.   $args = array(
    8.     'tag__in' => $tag_ids,
    9.     'tag__not_in' => array(100),
    10.     'post__not_in' => array($post->ID),
    11.     'posts_per_page' => 5, // Number of related posts that will be shown.
    12.     'caller_get_posts' => 1
    13.   );
    14.   $my_query = new wp_query($args);
    15.   if ($my_query->have_posts()) {
    16.     echo '<div id="related_posts" class="clear"><h3>Другие интересные статьи:</h3><ul>';
    17.     while ($my_query->have_posts()) {
    18.       $my_query->the_post(); ?>
    19.       <li>
    20.  
    21.         <?php
    22.         if (has_post_thumbnail()) { ?>
    23.           [url="<?php the_permalink() ?>"]<?php the_title(); ?>[/url]
    24.         <?php } else { ?>
    25.           [url="<?php the_permalink() ?>"]<?php the_title(); ?>[/url]
    26.         <?php }
    27.         ?>
    28.  
    29.  
    30.       </li>
    31.     <?php }
    32.  
    33.     echo '</ul></div>';
    34.   }
    35. }
    36. $post = $orig_post;
    37. wp_reset_query(); ?>
     
  3. vodoley213

    vodoley213 Активный пользователь

    С нами с:
    7 окт 2015
    Сообщения:
    6
    Симпатии:
    0
    Просто и гениально. Вроде работает. Спасибо
     
  4. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Пожалуйста