Intereting Posts
Различные типы сообщений, размещенные на одной странице отключить страницу с защитой паролем для зарегистрированных пользователей Как автоматически добавлять пользовательские классы в заголовки в области содержимого Могу ли я запустить add_action-hook внутри функции, которая получает данные через wp_ajax? Использование WP_Query – как отображать что-либо, если нет результатов Добавить исходный URL-адрес из плагина WordPress (Syndication) в настраиваемое поле в редакторе сообщений В галерее с сообщениями с ограниченным изображением, как мне не ограничивать изображения на одном посте? Как показать «Предыдущая категория» и «Следующая категория» в шаблонах архива категорий Проблема с пустыми атрибутами класса при запуске фильтра на nav_menu_css_class Тема WordPress показывает пустую страницу Правильный способ создания страницы пользовательского поиска для сложных пользовательских типов сообщений Отображение отдельной записи внутри аккордеона на основе результатов представления формы Как использовать заголовок видео .webm? Как проверить, существует ли категория ID на странице параметров темы Контроль версий как для конфигурации Vagrant, так и для разрабатываемых тем

Как я могу предложить только предложить одну таксономию?

Я использую встроенный плагин wordpress для вызова записей из таблицы терминов. Используя следующий sql-запрос, он выплескивает все термины:

$query = 'SELECT term_id,name FROM ' . $wpdb->terms . ' WHERE name LIKE \'' . $search . '%\' ORDER BY name ASC'; 

Я хотел бы ограничить термины, которые он выплескивает в одну таксономию, например, «категории» или «post_tags». Я попробовал код sql ниже, но он возвращается без каких-либо результатов.

 function test() { global $wpdb; $search = esc_sql( $wpdb -> esc_like($_REQUEST['q'])); $query = 'Select term_taxonomy_id, term_id, taxonomy, name FROM ' . $wpdb->term_taxonomy . ' JOIN ' . $wpdb->terms . ' ON term_taxonomy.term_id = terms.term_id WHERE taxonomy = \'catagory\' AND name LIKE \'' . $search . '%\' ORDER BY name ASC'; foreach ($wpdb->get_results($query) as $row) { $name = $row->name; $id = $row-> term_id; echo $name, "\n"; } die(); } add_action('wp_ajax_test', 'test'); add_action('wp_ajax_nopriv_test', 'test'); 

Solutions Collecting From Web of "Как я могу предложить только предложить одну таксономию?"

После соединения term_id существует два раза. Вы должны указать, какой term_id вы запрашиваете, префикс полного имени таблицы (или псевдонима).

Также есть другая ошибка term_taxonomy.term_id = terms.term_id Отсутствующий префикс таблицы.

Таким образом, обновленный запрос будет выглядеть так:

 $query = 'SELECT term_taxonomy_id, ' . $wpdb->prefix . 'terms.term_id, taxonomy, name FROM ' . $wpdb->term_taxonomy . ' JOIN ' . $wpdb->terms . ' ON ' . $wpdb->prefix . 'term_taxonomy.term_id = ' . $wpdb->prefix . 'terms.term_id WHERE taxonomy = \'category\' AND name LIKE \'' . $search . '%\' ORDER BY name ASC';