По одной записи из каждой категории
Вывожу записи так!
$args = array('tag__in' => array(60086), 'showposts'=>35); query_posts($args); if (have_posts()) : while (have_posts()) : the_post();
Вывожу 35 постов но проблема в том что выводятся по несколько записей из одной категории!
Нужно сделать чтобы не было повтора категорий и выводилось только по одной записи из каждой категории!
Нужно сначала получить все категории с помощью get_terms, потом внутри цикла с помощью get_posts вывести записи.
В ответе выше, вы делаете столько запросов к базе, сколько у вас категорий. Я предлагаю более изящный способ, использовать GROUP BY.
Например обычный код получения записей из категорий:
В этом случае наш запрос выглядит так (это код сгенерированный движком, просто мной отформатирован для лучшего понимания):
В этом коде, нам нужно заменить GROUP BY. Для этого есть чудесный фильтр posts_groupby_request, который фильтрует строку GROUP BY в запросе.
Таким образом, до нашего запроса фильтруем:
Это теория о фильтрации GROUP BY.
Разберетесь, как применить теорию в вашем случае, с тегами?
Или же другой вариант. Делаете выборку id постов произвольными запросом $wpdb->get_results(), а потом делаете выборку, с помощью get_posts() по найденным ID.
Вот запрос для получения ID постов для второго варианта:
Тут вместо tt1.term_taxonomy_id IN (6) подставляете свой id тега
Прошу меня извинить сделал второй аккаунт так как в прошлый не смог зайти!
Все работает огромное спасибо) Еще вопрос если все оставить в таком виде то нак насчет безопасности?
Вы никакие параметры ($_GET, $_POST, $_COOKIE и т.д.) не передаете в запрос. Т.е. со страницы нельзя никак повлиять на него. Поэтому тут на счет безопасности все чисто.
Только сейчас заметил один нюанс. Если вы поменяли префикс таблиц в БД, то нужно использовать свойства класса $wpdb для названий таблиц. Вместо wp_ вставлять
$wpdb->prefix
(предварительно вставив строчку global $wpdb), либо вместо названий таблиц использовать свойства класса, которые их хранят ($wpdb->posts
,$wpdb->termmeta
,$wpdb->term_taxonomy
,$wpdb->term_relationships
)Еще раз спасибо вам огромное вы мне очень помогли!
Насчет префиксов то ничего не менял!