Принцип подбора релевантных записей осуществляется по тегам — если записи имеют одинаковые метки то они считаются похожи. Ну вот во общем-то и все. Я не вижу вообще смысла вводить какие-то новые поля указывающие на схожесть записей или выдумывать новый алгоритм релевантного поиска, ведь система тегов (меток) была придумана именно для смысловой перевязки различных статей. Так давайте не будем изобретать велосипед, а воспользуемся тем что есть. Привожу код:
<? 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 на свое число.
Может как нибудь, если уж совсем нечего делать будет, сделаю плагин из этого кусочка кода.
З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й.