Как сделать «Похожие сообщения» без плагина, связывая посты по тегам.

Принцип подбора релевантных записей осуществляется по тегам — если записи имеют одинаковые метки то они считаются похожи. Ну вот во общем-то и все. Я не вижу вообще смысла вводить какие-то новые поля указывающие на схожесть записей или выдумывать новый алгоритм релевантного поиска, ведь система тегов (меток) была придумана именно для смысловой перевязки различных статей. Так давайте не будем изобретать велосипед, а воспользуемся тем что есть. Привожу код:

<?
if($tags = wp_get_post_tags($id)){
   foreach ($tags  as $key => $value){
       $terms[] = $value->term_id;
   }
   $terms = (',',$terms);
$query =
"SELECT SQL_CALC_FOUND_ROWS  $wpdb->posts.*
FROM $wpdb->posts
INNER JOIN $wpdb->term_relationships ON ($wpdb->posts.ID = $wpdb->term_relationships.object_id)
INNER JOIN $wpdb->term_taxonomy ON ($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id)
INNER JOIN $wpdb->terms ON ($wpdb->term_taxonomy.term_id = $wpdb->terms.term_id)
WHERE 1=1
AND $wpdb->posts.ID NOT IN ($id)
AND $wpdb->term_taxonomy.taxonomy = 'post_tag'
AND $wpdb->terms.term_id IN ($terms)
AND $wpdb->posts.post_type = 'post'
AND ($wpdb->posts.post_status = 'publish' OR $wpdb->posts.post_status = 'private')
GROUP BY $wpdb->posts.ID
ORDER BY $wpdb->posts.post_date DESC
LIMIT 0, 6";
   $related_post = $wpdb->get_results($query);
   if(($related_post)){
?>
        <br />
        <div id='related_post'>
        <h3>Похожие объявления:</h3>
        <ul class="ul-list box">
<?
    foreach ($related_post as $key=>$rl_post) {
?>
            <li style="margin-bottom: 10px">
                <a href="<?=get_permalink($rl_post->ID); ?>" rel="bookmark" title="Permanent Link to <?=$rl_post->post_title?>"><?=$rl_post->post_title?></a>
                 <br /><span class="postdata"><?=mysql2date('F jS, Y',$rl_post->post_date) ?> </span>
            </li>
<? } ?>
        </ul>
        </div>
<?
   }
}
?>

Код вставляется: находим папку своей темы, далее если есть файл single.php вставляем туда после главного цикла, если нету берем берем файл index.php переименовываем его в single.php.

После главного цикла — тут еще можно ориентироваться на вывод комментариев, где-то должна вызываться функция comments_template() дык вот перед ней. Ну там уже смотреть по месту.
Чтобы изменить кол-во показываемых записей меняем 6 в LIMIT 0, 6 на свое число.
Может как нибудь, если уж совсем нечего делать будет, сделаю плагин из этого кусочка кода.

Рубрика:  апреля 5, 2009.
/ » » »


Похожие записи:

One Response to Как сделать «Похожие сообщения» без плагина, связывая посты по тегам.

  1. says:

    Зaтaчивaю у вac в caлoнe или дoмa. Cpaзу пpoвepяeт в paбoтe нa кaчecтвo. Cтaж тpи гoдa. Moгу c увepeннocтью cкaзaть, чтo дocтиг выcoкoгo мacтepcтвa. Вeдь пpoфeccиoнaльнaя зaтoчкa — этo ювeлиpнaя paбoтa. Mнe нpaвитcя мoя paбoтa! Увaжaю cвoиx клиeнтoв, дoбpoжeлaтeльнoe oтнoшeниe к кoтopым, являeтcя чacтью мoeй paбoты. C кaждым мacтepoм я зaнимaюcь oтдeльнo. Инcтpумeнт зaтaчивaeтcя пpи Вac, и кaчecтвo дocтигaeтcя тaкoe кaкoe нeoбxoдимo вaм. Зaтaчивaю инcтpумeнт нa aлмaзнoм кpугe. Kуcaчки cтaнoвятcя ocтpыми. Вeдь c ocтpыми куcaчкaми paбoтa идeт быcтpee вo мнoгo paз. Пинцeты тoчу тaк, чтoбы губки xвaтaли дaжe caмыe тoнкиe вoлocки пo вceй плocкocти. Ecли Вы coмнeвaeтecь в кaчecтвe мoeй paбoты, тo зaтoчу oдин инcтpумeнт Вы пpoвepитe, ecли пoнpaвитьcя, тo и ocтaльныe зaтoчу. Eщё изгoтaвливaю и пpoдaю инcтpумeнт. Xopoший инcтpумeнт — Вaш уcпex! Kуcaчки — 250 pуб. Hoжницы кутикульныe, пушep, шaбep — 150pуб. Пинцeты — 200 pуб. Пapикмaxepcкиe нoжницы любыe — 300 pуб. Выeзд oт 6-ти инcтpумeнтoв. У Вac будeт выбop мacтepa, peшeниe зa вaми. ЗВOHИТE! Cepгeй.

Добавить комментарий

Новости

  • Украинцы создали самую плохую игру
  • Украина останется без таксофонов
  • Чернобыль будет жить вновь
  • Почему поезд сошел с рельсов?
  • Украинская неделя искусств
  • Результаты выборов в Украине
  • Гривна сейчас стабильнее чем в 2008
  • Комментарии


    Расширеный поиск +

    Другие статьи

    Объявления

    Мои проекты на WordPress

    , - специализированная доска объявлений по недвижимости на стоимость сборки $300 с установкой.
    городская доска объявлений, основные разделы: недвижимость, транспорт, услуги, работа, куплю-продам. Стоимость сборки $300 с установкой.
    - разработка, поддержка.

    Счетчики

    our blog