Похожие Сообщения - НЕТ плагина


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

Как это можно сделать?

Author: Jared, 2011-01-14

3 answers

Поместите это в свой single.php:


$tags = wp_get_post_tags($post->ID);
if ($tags) {
$first_tag = $tags[0]->term_id;
$args=array(
'tag__in' => array($first_tag),
'post__not_in' => array($post->ID),
'showposts'=>4,
'caller_get_posts'=>1
);
$my_query = new WP_Query($args);
if( $my_query->have_posts() ) {
while ($my_query->have_posts()) : $my_query->the_post(); 
 // post content stuff here
endwhile;
wp_reset_query();
}
}
 1
Author: Pippin, 2011-01-15 01:23:58

Граница между кодом темы и кодом плагина больше связана с предполагаемой целью, чем с техническими ограничениями. Любой из них может делать то, что делает другой.

Если вы хотите что-то простое (сообщения с тем же тегом или около того), не будет проблемой включить это непосредственно в functions.php.

Но полнофункциональные решения для связанных сообщений могут быстро усложняться, что означает, что они медленные, а это значит, что им требуется интеллектуальное кэширование... Чтобы получить что-то подобное, лучшим способом было бы адаптировать некоторые плагин, связывайтесь с темой и используйте ее.

 3
Author: Rarst, 2011-01-14 18:01:53

Решите, что вы хотите считать "похожим сообщением". Самый простой подход - выбрать публикации, которые имеют один или несколько общих тегов с текущей публикацией. Это должно сделать это (в вашем цикле):

$tags_in = array_map( 
    create_function('$tag','return $tag->term-id;'), 
    get_the_tags() );
$similar_posts = get_posts( array(
    'tag__in' => $tags_in ) );

Конечно, существуют гораздо более сложные способы поиска связанных сообщений, в основном включающие сравнение названий сообщений и анализ содержания по словам. Посмотрите на код из Еще одного плагина связанных сообщений или любых других примеров, прежде чем углубляться в ваш собственный.

 2
Author: goldenapples, 2011-01-14 22:28:16