X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость ( Вход | Регистрация )

Открыть тему
Тема закрыта
> Wordpress: исключить категорию из custom query
Fallup
Fallup
Topic Starter сообщение 13.4.2013, 16:17; Ответить: Fallup
Сообщение #1


Добрый пёс
******


Группа: Active User
Сообщений: 2372
Регистрация: 15.12.2009
Из: мамы
Поблагодарили: 1065 раз
Репутация:   119  


Привет.
В одном из шаблонов использую для вывода постов вот такую вот конструкцию.
<? $query_string = "  
SELECT *  
FROM $wpdb->posts
LEFT JOIN $wpdb->postmeta ON ($wpdb->posts.ID = $wpdb->postmeta.post_id)
WHERE $wpdb->postmeta.meta_key = '12m'
AND $wpdb->posts.ID != $post->ID
AND $wpdb->postmeta.meta_value = '1'
AND $wpdb->posts.post_status = 'publish'  
AND $wpdb->posts.post_type = 'post'
ORDER BY $wpdb->posts.post_name ASC ";  
$series_posts = $wpdb->get_results($query_string, OBJECT);  
if ($series_posts):  

foreach ($series_posts as $post):  
?>


Подскажите пожалуйста, как здесь можно исключить конкретную категорию или несколько категорий по ID или slug
Спасибо.


--------------------
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
meteora
meteora
сообщение 13.4.2013, 18:28; Ответить: meteora
Сообщение #2


Новичок
*

Группа: User
Сообщений: 34
Регистрация: 5.3.2013
Из: СПб
Поблагодарили: 8 раз
Репутация:   1  


вам надо дописать несколько join'ов... wp_posts -> wp_term_relationships -> wp_term_taxonomy -> wp_terms
ну а далее прописать что параметр term_id не равен значению исключаемой категории (WHERE $wpdb->terms.term_id != 'id_nubmer_of_category')
как то так=)


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Fallup
Fallup
Topic Starter сообщение 13.4.2013, 18:46; Ответить: Fallup
Сообщение #3


Добрый пёс
******


Группа: Active User
Сообщений: 2372
Регистрация: 15.12.2009
Из: мамы
Поблагодарили: 1065 раз
Репутация:   119  


<? $query_string = "
SELECT *
FROM $wpdb->posts
LEFT JOIN $wpdb->postmeta ON ($wpdb->posts.ID = $wpdb->postmeta.post_id)
LEFT JOIN $wpdb->wp_posts -> wp_term_relationships -> wp_term_taxonomy -> wp_terms
WHERE $wpdb->postmeta.meta_key = '12m'
WHERE $wpdb->terms.term_id != '261'
AND $wpdb->posts.ID != $post->ID
AND $wpdb->postmeta.meta_value = '1'
AND $wpdb->posts.post_status = 'publish'
AND $wpdb->posts.post_type = 'post'
ORDER BY $wpdb->posts.post_name ASC ";
$series_posts = $wpdb->get_results($query_string, OBJECT);
if ($series_posts):  

foreach ($series_posts as $post):
?>


Я тут попробовал навскидку. Естественно, не работает )


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
meteora
meteora
сообщение 13.4.2013, 19:09; Ответить: meteora
Сообщение #4


Новичок
*

Группа: User
Сообщений: 34
Регистрация: 5.3.2013
Из: СПб
Поблагодарили: 8 раз
Репутация:   1  


Fallup, не ну там на каждую таблицу надо join писать и параметры прописывать по которым таблицы джойнятся=))) не так все просто)))
покопайтесь в БД и сравните по каким параметрам таблицы связаны между собой, это полезно=)
делайте по примеру вот этой строчки
LEFT JOIN $wpdb->postmeta ON ($wpdb->posts.ID = $wpdb->postmeta.post_id)
в итоге должно получиться несколько таких аналогичных строчек

Сообщение отредактировал meteora - 13.4.2013, 19:09


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Fallup
Fallup
Topic Starter сообщение 13.4.2013, 19:13; Ответить: Fallup
Сообщение #5


Добрый пёс
******


Группа: Active User
Сообщений: 2372
Регистрация: 15.12.2009
Из: мамы
Поблагодарили: 1065 раз
Репутация:   119  


У меня беда с синтаксисом и php и SQL - поэтому и постоянно побираюсь на форумах в поисках решений от мозговитых человеков =)

Может можно заменить такой вывод через обычный wp_query или get_posts?


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
meteora
meteora
сообщение 13.4.2013, 19:20; Ответить: meteora
Сообщение #6


Новичок
*

Группа: User
Сообщений: 34
Регистрация: 5.3.2013
Из: СПб
Поблагодарили: 8 раз
Репутация:   1  


Fallup,
можно, но опять же google вам в помощь=) по wp_query в нете куча материала, sql же чаще нужен если у вас там вывод по каким то необычным параметрам... на все остальное типа published можно использовать как раз стандартные wp_query

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Верстка + натяжка на CMS WordPress, OpenCart
0 Chezarius 122 Сегодня, 14:37
автор: Chezarius
Горячая тема (нет новых ответов) Услуги по CMS Wordpress, DLE, Joomla!. Правки, ремонт, настройка.
Редактирование и правки. Низкие цены.
156 contex1 70765 Сегодня, 0:06
автор: AnnaProf
Открытая тема (нет новых ответов) Удаляю вирусы на CMS WordPress. Чищу качественно и быстро, даю гарантию.
10 maxix 1126 Вчера, 16:59
автор: maxix
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыСайт о Туризме Wordpress
4 tbr82 656 19.5.2018, 19:53
автор: 1da1
Открытая тема (нет новых ответов) Русификация шаблонов и плагинов WordPress
0 Dizer7 237 18.5.2018, 17:35
автор: Dizer7


 



RSS Текстовая версия Сейчас: 22.5.2018, 16:32
Дизайн