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
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

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

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Адаптивная вёрстка и натяжка на Wordpress, DLE, Joomla и др. Создание мобильных версий.
Хороший код с оптимизацией по скорости. Сайты и лендинги "под ключ
15 Nell 1113 Вчера, 23:36
автор: Nell
Горячая тема (нет новых ответов) Вёрстка, натяжка на WordPress, Joomla, качественно, доступно
53 WhiteIce 23755 12.12.2017, 19:41
автор: WhiteIce
Горячая тема (нет новых ответов) Разработка сайтов Joomla Wordpress Opencart
Разработка, верстка, оптимизация веб сайтов.
48 WoWeb 7329 12.12.2017, 13:37
автор: serg5777
Открытая тема (нет новых ответов) Как включить автоматическое обновление для плагинов WordPress и самого движка?
0 Telnor 390 10.12.2017, 13:27
автор: Telnor
Открытая тема (нет новых ответов) Адаптация сайтов под мобильные устройства, качественная кроссбраузерная верстка, работа с Wordpress
PSD to HTML, натяжка макетов на Wordpress, адаптивная верстка
28 anton_ber 5180 6.12.2017, 13:39
автор: anton_ber


 



RSS Текстовая версия Сейчас: 14.12.2017, 6:58
Дизайн