Intereting Posts
Форматирование отладочных сообщений WordPress Как мне создать миниатюру с первого встроенного изображения? В какой теме литейщик имеет чистые закодированные темы, где код – это поэзия Как разрешить пользователю, не зарегистрировав загрузку системы WP в медиа-библиотеке? Предотвратить личное сообщение 404 Unescape атрибут the_title () на CDATA в RSS-канале Добавление кнопок TinyMCE без удаления плагинов? Добавление настраиваемого шаблона страницы на страницу с плагином Покажите счет автора общей суммы должностей, присваиваемых пользовательскому термину таксономии Таксономия или пользовательское поле Загрузить изображение в мета-окне Обновление содержимого сообщения на лицевой стороне Отключить создание папок в течение нескольких лет и месяцев в папке uploads Как добавить переменную GET после URL-адреса скрипта? Показать только пункты меню второго уровня?

Получить сообщения по ID меню

Я немного застрял здесь. У меня есть меню в WordPress с некоторыми сообщениями в нем. Я хотел бы получить все сообщения в виде объектов.

Я думаю, что я довольно близко, но SQL-запрос не работает так, как я хочу.

Это то, что у меня есть до сих пор:

$querystr = " SELECT wposts.* FROM wp_posts wposts LEFT JOIN wp_postmeta wmeta ON wposts.ID = wmeta.post_id LEFT JOIN wp_term_relationships wrel ON wrel.object_id = wmeta.meta_value LEFT JOIN wp_terms wterms ON wrel.term_taxonomy_id = wterms.term_id WHERE wterms.term_id= $menu_id "; $posts = $wpdb->get_results($querystr, OBJECT); 

Я уверен, что это глупая небольшая ошибка логики SQL, но я действительно не могу ее найти ..

Solutions Collecting From Web of "Получить сообщения по ID меню"

Мне недавно нужно было то же самое, у меня было меню категорий, и мне нужно было получить категории, которые в меню. Через несколько часов в ядре WP я нашел функцию wp_get_nav_menu_items (), которая помогла мне.

Я в конце концов пришел с этим, 220 был моим menu_id

 $navcat = wp_get_nav_menu_items('220'); foreach ($navcat as $obj) { $catid = $obj->object_id; $category = get_category($catid); ... ... } 

Итак, если у вас есть навигационное меню сообщений, я предполагаю, что вы можете сделать то же самое, что-то вроде этого должно работать –

 $nav_items = wp_get_nav_menu_items('220'); foreach ($nav_items as $obj) { $objid = $obj->object_id; $postobj = get_post($objid); //do stuff with the post.. } 

Я думаю, это может сэкономить вам сложный mySQL-запрос …

Есть функция, чтобы получить меню навигации в качестве объекта: wp_get_nav_menu_object() – элементы (сообщения) находятся внутри объекта и доступны.