Intereting Posts
Запретить загрузке комментариев WordPress Текущее имя таксономии (не термин!), Учитывая идентификатор сообщения Как добавить пользовательский шрифт в TinyMCE FontSelect в WP Admin или фильтровать доступные шрифты Изображения, не отображаемые после изменения имени папки wp-содержимого Замена эллипса тремя точками Функция для удаления всех классов изображений, вставленных в сообщения? Получить перетаскиваемые виджеты на странице «Редактировать сообщения» Сколько пользовательских типов сообщений регистрируется? Как показать контент из плагина с использованием шаблона, на котором в данный момент работает сайт? Показать виджет Woocommerce minicart на боковой панели страницы проверки? И как сделать это обновление безопасным, переопределив виджет? как изменить разметку / классы меню WordPress Не удалось добраться до панели администратора Список сообщений, основанных на первом письме сообщений Переход от одного теста к нескольким конечным средам WordPress Multisite: иметь одинаковый заголовок и нижний колонтитул основного блога во всех суб-блогах

Пользовательский запрос SELECT не возвращает the_title и the_permalink

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

Я включил код ( related_posts.php ) под свой single.php . Однако это не отражается на данных о почтовых сообщениях, однако пользовательский запрос SELECT отлично работает в phpMyAdmin, но на почтовой странице он печатает только правильный идентификатор сообщения, тогда как все остальные данные являются неправильными или пустыми.

Проблема может быть конфликтной в $ post, потому что я включаю код в single.php. Я пробовал wp_reset_postdata (), wp_reset_query (), но никто из них не работал.

<?php /* related_posts.php */ $title = get_the_title(); //splitting words $s_terms = explode(" ", $title); //eliminating characters from title $s_terms = preg_replace("/[^a-zA-Z 0-9]+/", "", $s_terms ); //sorting words by length function term_sort($a,$b){ return strlen($b)-strlen($a); } usort($s_terms,'term_sort'); //formatting as "%KEY%" $i = 0; $st_len = count($s_terms); foreach ($s_terms as &$s_term) { if($i !== $st_len - 1) { $s_term = "$wpdb->posts.post_title LIKE '%" . $s_term . "%' OR"; }else{ $s_term = "$wpdb->posts.post_title LIKE '%" . $s_term . "%'"; } $i++; } unset($value); //converting array to string with comma as a separator $s_terms = implode(" ", $s_terms); //query $querystr = "SELECT SQL_CALC_FOUND_ROWS $wpdb->posts.ID FROM $wpdb->posts WHERE 1=1 AND ($s_terms) AND $wpdb->posts.post_type = 'post' AND ($wpdb->posts.post_status = 'publish' OR $wpdb->posts.post_status = 'private')"; // $querystr output : SELECT SQL_CALC_FOUND_ROWS wpku_posts.ID FROM wpku_posts WHERE 1=1 AND (wpku_posts.post_title LIKE '%Hello%' OR wpku_posts.post_title LIKE '%World%' OR wpku_posts.post_title LIKE '%Post%') AND wpku_posts.post_type = 'post' AND (wpku_posts.post_status = 'publish' OR wpku_posts.post_status = 'private') //get result $pageposts = $wpdb->get_results($querystr, OBJECT); if ($pageposts): global $post; foreach ($pageposts as $post): setup_postdata($post); echo get_the_ID(); //returning correct ID the_title(); //returning nothing echo time_ago(); //returning 2018 years ago the_permalink(); //returning base url http://www.example.com endforeach; endif; ?> 

Solutions Collecting From Web of "Пользовательский запрос SELECT не возвращает the_title и the_permalink"