Эта функция очень полезна, люди постоянно ищут способы получения похожих сообщений
Код, который вы используется рабочий function
, который возвращает массив сообщений, связанных с текущим сообщением, в зависимости от общих терминов.
- Как работает эта функция:
Вы можете вызвать функцию из файла single.php
, и в качестве входных данных вы должны предоставить 4 информации. Текущее сообщение ID
, количество связанных сообщений, которое нужно вернуть, post_term
для фильтрации соответствующих сообщений (post_tag
) и, наконец, post_type
.
Пример вызова функции: exe_get_related_posts_by_common_terms(get_the_ID(), 10, 'post_tag', 'post')
Приведенный выше пример вернет 10 идентификаторов записей в виде массива на основе текущей записи ID
и tag
- Возвращение массива записей и l oop через ID
Теперь нам нужен только пользовательский wp_query
, чтобы l oop через array
и отформатировать вывод.
Пример wp_query:
$args = array(
'post_type' => 'post',
'post__in' => $related_post
);
// The Query
$related_query = new WP_Query( $args );
Полный рабочий пример возврата заголовков сообщений в неупорядоченном списке:
<?php
$cpid = get_the_ID(); // get current post id
$related_posts = exe_get_related_posts_by_common_terms($cpid, 10, 'post_tag', 'post');
$posts_array = array_column($related_posts, 'post_id'); // new single dimension array with the ID's
$args = array(
'post_type' => 'post',
'post__in' => $posts_array
);
// The Query
$related_query = new WP_Query( $args );
if ($related_query->have_posts()) : ?>
<ul>
<?php while ($related_query->have_posts()) : $related_query->the_post(); ?>
<li><?php the_title(); ?></li>
<?php endwhile; ?>
</ul>
<?php endif; ?>
Теперь вы можете настроить внешний вид и заливку, как вам нравится