Принцип подбора релевантных записей осуществляется по тегам – если записи имеют одинаковые метки то они считаются похожи. Ну вот во общем-то и все. Я не вижу вообще смысла вводить какие-то новые поля указывающие на схожесть записей или выдумывать новый алгоритм релевантного поиска, ведь система тегов (меток) была придумана именно для смысловой перевязки различных статей. Так давайте не будем изобретать велосипед, а воспользуемся тем что есть. Привожу код:
if($tags = wp_get_post_tags($id)){
foreach ($tags as $key => $value){
$terms[] = $value->term_id;
}
$terms = implode(',',$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(sizeof($related_post)){
?>
}
}
?>
Код вставляется: находим папку своей темы, далее если есть файл 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й.