Меню

Вывести список всех post

get_post_types() WP 2.9.0

Возвращает существующие (зарегистрированные) типы записей. Можно фильтровать вывод по множеству критериев.

Возвращает

Строку[]|WP_Post_Type[] . Список названий типов записей или массив объектов (вывод настраивается в параметре $output ).

Использование

Массив критериев, по которым будут выбраны типы записей. Значение каждого параметра смотрите в описании функции register_post_type().

  • name
  • label
  • singular_label
  • description
  • public — Логический, если true, то выбраны будут только публичные типы записей (см. описание register_post_type() ).
  • publicly_queryable
  • exclude_from_search
  • show_ui
  • capability_type
  • edit_cap
  • edit_type_cap
  • edit_others_cap
  • publish_others_cap
  • read_cap
  • delete_cap
  • hierarchical
  • supports
  • register_meta_box_cb
  • taxonomies
  • menu_position
  • menu_icon
  • permalink_epmask
  • rewrite
  • query_var

_builtin
Логический. Если true, то будут возвращены встроенные типы записей WP: page, posts. false — вернет только новые типы записей.

Типы записей относящиеся к критерию _builtin :

  • post
  • page
  • mediapage
  • attachment
  • revision
  • nav_menu_item — с версии 3.0
  • custom post type — с версии 3.0
  • _edit_link
  • По умолчанию: предустановки

    Как выводить результат. Возможны 2 варианта:

    • names — будет возвращен массив имен;
    • objects — будет возвращен массив объектов с данными типа записи.
      По умолчанию: ‘names’

    $operator(строка) Оператор сравнения для указанных критериев. Может быть: ‘and’ и ‘or’.
    По умолчанию: ‘and’

    Примеры

    #1 Выведем на экран список названий всех зарегистрированных типов записей

    Выведет зарегистрированные типы записей:

    #2 Выведем на экран список типов записей имеющих страницу во форонте

    #3 Выведем на экран список всех публичных, произвольных (созданных) типов записей

    #4. Пример, получение типа записи по названию

    Здесь используется вывод в виде объекта данных (object). Выводим тип записи с названием property :

    Заметки

    • Global. Массив. $wp_post_types List of post types.
    • Смотрите: register_post_type() for accepted arguments.

    Список изменений

    value arguments to match against * the post type objects. Default empty array. * @param string $output Optional. The type of output to return. Accepts post type ‘names’ * or ‘objects’. Default ‘names’. * @param string $operator Optional. The logical operation to perform. ‘or’ means only one * element from the array needs to match; ‘and’ means all elements * must match; ‘not’ means no elements may match. Default ‘and’. * @return string[]|WP_Post_Type[] An array of post type names or objects. */» data-tooltip-type=»pre»>Код get_post_types() get post types WP 5.8.1

    Cвязанные функции

    post_type (произвольный тип записи)

    Типы записей

    у тебя в описании функции register_post_type есть пример #1 Регистрация нового типа записи
    вставляю этот пример в functions.php, далее сразу после него вставляю код

    да да, print_r в functions.php, не суть. смысл в том, что массив почему-то пустой.

    что-то не так с приоритетами и вордпресс еще не видит созданного post_type?

    если этот print_r вставить, например, в файл 404.php, а затем открыть на сайте любую несуществующую страницу, то там массив будет уже со всеми созданными post_type

    Источник

    Как вывести на странице список всех записей сайта?

    Очень часто на форумах поддержки WordPress возникает вопрос о том, как в записи или на странице вывести список всех существующих на сайте записей. Зачем это нужно каждый решает сам. Кто-то таким образом вручную создает карту сайта, а кому-то это надо для замены рубрик. В большинстве случаев, подобная задача решается с помощью сторонних плагинов. Но если вам надо просто вывести список записей и ничего больше, то использование сторонних плагинов тут будет неоправданным. Вывести список всех записей можно с помощью небольшого шорткода [allposts], который вы вольны добавить куда угодно. Совсем недавно я рассматривал вопрос о том, как вывести список всех меток или рубрик сайта в алфавитном порядке, с записями принцип практически тот же. Для этого вам необходимо добавить в файл functions.php вашей темы следующий код:

    //вывод списка всех записей сайта с помощью шорткода start function wph_allposts_shortcode($atts, $content) < $args = array( 'post_type' =>‘post’, ‘post_status’ => ‘publish’, ‘posts_per_page’ => -1, ‘orderby’ => ‘title’, ‘order’ => ‘ASC’ ); $query = new WP_Query( $args ); if( $query->have_posts() ) < echo '

      ‘; while ( $query->have_posts() ) < $query->the_post(); echo ‘
    • ‘ . get_the_title() . ‘ ‘; > echo ‘

    ‘; > wp_reset_postdata(); > add_shortcode(‘allposts’, ‘wph_allposts_shortcode’); //вывод списка всех записей сайта с помощью шорткода end

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

    Источник

    Получение и вывод записей/постов WordPress — WP_Query и get_posts()

    Параметры запроса постов и таксономий WordPress. Примеры фильтров и способов рендеринга постов, категорий и кастомных таксономий.

    Читайте также:  Чем нельзя чистить нержавейку

    Для каждой страницы ядро WordPress формирует запрос к БД для получения записей на основе параметров GET запроса. Параметры запроса постов устанавливаются в глобальном объекте $wp_query . При необходимости, вы можете модифицировать этот базовый запрос иди же сформировать новый объект запроса к БД — WP_Query .

    Внимание!

    Не вызывайте ф-цию get_posts() и не используйте класс WP_Query непосредственно в файле functions.php! Получите мучительно долгую отладку неработающего запроса. Используйте запросы WP_Query внутри хуков или в самих шаблонах.

    Внимание!

    Никогда не используйте функцию query_posts() ! Эта ф-ция используется ядром WP для формирования основного запроса на получение постов по GET параметрам URL/ЧПУ. Вызвав эту ф-цию, вы замените глобальный объект основного запроса — $wp_query . Для дополнительных кастомных запросов всегда используйте WP_Query или обертку get_posts() .

    Если вы все же изменили глобальную переменную $wp_query (что не рекомендуется!) с помощью функции query_posts() , верните ее в исходное состояние с помощью wp_reset_query() . И убедитесь, что вы делаете все правильно..

    Отладка

    SQL запрос объекта WP_Query хранится в свойстве request:

    Изменение базового запроса

    Задать параметры основного/базового запроса глобальный объект запроса вы можете только через хук pre_get_posts :

    Параметры GET запроса

    Использование WP_Query для получения записей

    Сразу приведу пример полного цикла вывода записей/постов:

    Примечание

    Ф-ция wp_reset_postdata() восстанавливает глобальную переменную $post из глобального объекта $wp_query:

    Далее подробно рассмотрим детали каждого этапа и дополнительных возможностей.

    Методы получения записей

    Получение одной записи/поста по id или slug:

    Примечание

    Функция get_post() — это обертка над WP_Post , она принимает дополнительные параметры $output и $filter:

    Сформировать новый запрос для получения записей/постов WP_Query :

    Получение записей/постов используя функцию get_posts() :

    Примечание

    Функция get_posts() — это просто обертка над WP_Query . Принимает массив с теми же параметрами для фильтрации постов. В отличие от query_posts() , она не вмешивается в глобальный запрос $wp_query , а создает отдельный экземпляр класса WP_Query . Также ф-ция get_posts() устанавливает некоторые дефолтные значения:

    Фильтры записей

    Основные фильтры и параметры запроса

    Примечание

    paged — Номер страницы пагинации. Показывает посты, которые в обычном режиме должны были быть показаны на странице пагинации Х. Переписывает параметр posts_per_page.

    page(число) — Номер для статической домашней страницы. Показывает записи, которые в обычном режиме должны были быть показаны на странице пагинации Х главной статической странице (front page).

    Примечание

    Примечание к типам постов:

    Фильтр по дереву (иерархии)

    Фильтр по категориям

    Примечание

    При использовании фильтра post_in , WordPress будет извлекать «прикрепленные» записи, даже если их ID нет в массиве! Чтобы отключить вывод «прилепленных» записей — передайте параметр ignore_sticky_posts .

    Фильтр по тегам (меткам)

    meta_query — фильтр по мета данным

    Параметр meta_query представляет массив вложенных параметров фильтрации записей/постов по мета данным.

    tax_query — фильтр по таксономиям

    Фильтр по категории кастомных постов:

    Фильтр по категории и тегам:

    Примеры запросов

    Получить дочерние страницы для текущей страницы:

    Всего доступно постов:

    Добавить фильтр запроса «посты только с изображениями»:

    Вывод записей

    Цикл вывода записей

    Примечание

    Используйте wp_reset_postdata() для «сброса» значения глобальной переменной $post к состоянию основного запроса, после завершения любых циклов обхода записей! Поскольку каждый the_post() заменяет глобальные переменные, вы можете обнаружить, что на странице записи, например, переменная $post содержит не основной пост, а какой-то другой. Который скорее всего будет последним постом из какого-то цикла.

    Дополнительные/мета поля

    post_meta

    Получить мета поля:

    Получить ссылку на основное изображение поста:

    WP_Query: query_vars

    Получить объект (пост или таксономия) запроса для текущего маршрута/ЧПУ:

    Получить параметры запроса для текущей страницы:

    Получить параметр запроса WP_Query текущей страницы (поста или записей раздела):

    Получить объект параметров основного GET запроса текущей страницы. Параметры формируются в зависимости от страницы — это может быть набор параметров для получения поста на странице поста, или параметры получения списка постов на страницах категории/архива.

    Пример получения название категории для архива:

    setup_postdata($post)

    Извлекает данные поста и формирует глобальные переменные поста. Использует переданную переменную $post и глобальный объект запроса $wp_query. Создаются следующие глобальные переменные: $id, $authordata, $currentday, $currentmonth, $page, $pages, $multipage, $more, $numpages.

    Функция работает только при условии, что вы передаете ей глобальный объект поста с именем $post. Если у вас объект поста находится в другой переменной — установите $post = $myWpPost, после чего передайте $post в эту ф-цию. Я не очень понимаю как работает эта ф-ция, если передавать ей ID поста вместо $post.

    $found_posts — количество найденных записей

    $query_vars — аргументы запроса

    Читайте также:  Как чистит плату от пульта

    Получение отдельных полей поста (post_type, post_title, post_status, post_content..):

    Источник

    get_posts() WP 1.2.1

    Получает записи (посты, страницы, вложения) из базы данных по указанным критериям. Можно выбрать любые посты и отсортировать их как угодно.

    Это обертка для класса WP_Query, т.е. в функцию можно передать такие же параметры.

    У этой функции есть предустановленные параметры. Иногда их нужно изменить, чтобы они не мешали. Предустановленные параметры:

    • post_type = post — если мы указываем вывод таксономии для типа записи отличного от post, то параметр post_type нужно изменить — он по умолчанию равен post .
    • numberposts = 5 — если мы забудем изменить параметр numberposts , то долго можем недоумевать почему выводится только 5 записей вместо нужных 20.
    • suppress_filters = true — этот параметр отключает работу некоторых фильтров (хуков). Читать подробнее.

    get_posts() — это аналог query_posts(). Отличается тем, что get_posts() не вмешивается в глобальный запрос WP, а создает отдельный экземпляр класса WP_Query . Подробнее читайте здесь.

    Возвращает

    Пустой массив, если не удалось получить записи.

    Массив WP_Post объектов (записей). Каждый объект в массиве выглядит так:

    Шаблон использования

    Использование

    Аргументы параметра $args

    Эта функция является оберткой для WP_Query, поэтому она может принимать такие же параметры.

    • numberposts (число)
    • posts_per_page (число)
    • offset (число)
    • category (число/строка/массив)
    • category_name (строка)
    • tag (строка)
    • include (строка/число/массив)
    • exclude (строка/число)
    • meta_key и meta_value (строка)
    • meta_query (массив)
    • date_query (массив)
    • post_type (строка/массив)
    • post_mime_type (строка/массив)
    • post_status (строка)
    • post_parent (число)
    • nopaging (логический)
    • orderby (строка)
    • order (строка)
    • suppress_filters (true/false)

    numberposts(число) posts_per_page(число) Количество выводимых постов. Установить на 0 , чтобы ограничить вывод максимальным числом постов на страницу (устанавливается в настройках ВП) или поставить -1 чтобы убрать ограничения вывода (LIMIT).
    По умолчанию: 5 offset(число) Отступ от первого поста (записи). category(число/строка/массив)

    Укажите ID категории из которой нужно получить посты. Можно указать ID со знаком минус -3 , тогда эта категория будет исключена (будут получены все записи, кроме записей из категории 3). Можно указать несколько ID через запятую в виде строки 3,5,12 или -3,-5,12 ).

    В значении нужно передавать ID, а не название категории.

    Смотрите также описание параметра cat у WP_Query .

    category_name(строка) Показывать посты только из этой категории (указывается название или альтернативное имя(slug) категории).
    По умолчанию: » tag(строка) Получить записи имеющие указанные в этом параметре метки. Нужно указывать альтернативное имя (slug) метки. Если указать несколько имен (меток) через запятую, то будут получены записи соответствующие любой метке, а если разделить пробелами, то будут получены записи имеющие все указанные метки.
    По умолчанию: » include(строка/число/массив)

    ID постов, которые нужно получить. Если указывается строка, то ID нужно разделять запятыми или пробелами. Пример, получит 6 постов: ‘45,63,78,94,128,140’.

    Важно: Указав этот параметр, бессмысленно указывать параметры posts_per_page , offset , category , exclude , meta_key , meta_value и post_parent .
    По умолчанию: »

    exclude(строка/число) ID постов которые нужно исключить из выборки, указывать через запятую или пробел.
    По умолчанию: » meta_key и meta_value(строка)

    Получить посты имеющие указанное произвольное поле (meta_key) со значением (meta_value).

    Можно указать meta_key и meta_value , тогда будут получены посты, у которых есть указанное метаполе и значение которого равно указанному значение.

    Или можно указать только meta_key , тогда будут получены все записи у которых это метаполе есть и не важно какое там значение.

    meta_query(массив) Выборка записей по произвольным полям. Подробнее см. в описании WP_Query (meta_query).
    По умолчанию: [] date_query(массив) Выборка записей по датам. Подробнее см. в описании WP_Query (date_query).
    По умолчанию: [] post_type(строка/массив)

    Какого типа посты нужно получать, может быть:

      any — все типы, кроме revision и типов у которых указан параметр exclude_from_search=true .

    attachment — прикрепленные записи.

    по умолчанию WP_Query ставит статус ‘post_status’=>’publish’ , а вложения имеют статус ‘post_status’=>’inherit’ , поэтому чтобы вывести вложения нужно еще изменить параметр post_status на ‘inherit’ или ‘any’.

    По умолчанию: ‘post’

    Какого типа вложения нужно получить. Можно использовать, когда параметр post_type = attachment .

    • image/jpeg
    • image/png
    • image/gif
    • image — для любых картинок
    • audio/mpeg
    • application/pdf
    • application/zip

    Вместо одно миме типа можно указать несколько в массиве. Полный список миме типов смотрите здесь.

    Статус записи. Можно передать несколько статусов через запятую. Может принимать:

    • publish — опубликовано
    • private — личная запись
    • draft — черновик
    • future — запланировано
    • pending — на модерации
    • inherit — вложение, любое вложение получает этот статус. Ставиться автоматически, при $post_type=’attachment’
    • any — все статусы

    По умолчанию: publish

    post_parent(число) Показать только дочерние записи к указанному ID.
    По умолчанию: 0 nopaging(логический) Включить или отключить пагинацию, если стоит true параметр $numberposts игнорируется.
    По умолчанию: false orderby(строка)

    Сортировать результат по указанным полям. Можно указывать несколько полей сортировки, через пробел. Допустимые поля:

    • author — сортировать по ID авторов.
    • content — сортировать по контенту.
    • date — сортировать по дате создания записи.
    • ID — сортировать по ID записи. Указываются ID в массиве или через запятую.
    • menu_order — сортировать по полю menu_order . Используется для постоянных страниц и вложений (картинки, файлы и т.п.).
    • mime_type — сортировать по MIME типу. Используется для вложений.
    • modified — сортировать по дате изменения.
    • name — сортировать по альтернативному имени (slug).
    • rand — случайная сортировка. Создает повышенную нагрузку на БД.
    • status — сортировать по статусу (черновик, опубликовано и т.п.)
    • title — сортировать по названию.
    • parent — сортировать по ID родителя (parent ID).
    • password — сортировать по паролю.
    • type — сортировать по типу (пост, страница и т.д. ).
    • comment_count — по количеству комментариев.
    • meta_value — по значению указанного произвольного поля.
    • post__in — учитывает порядок указанных ID в параметре include.
    Читайте также:  Как вывести застарелые каловые массы

    Префикс post_ у полей таблицы опускается для удобства. Например вместо date можно написать post_date , вместо content post_content и т.д.

    По умолчанию: ‘date’

    меню order(строка) В каком направлении упорядочить, указанное в параметре $orderby , поле:
    ASC — по порядку (от меньшего к большему: а,б,в).
    DESC — в обратном порядке (от большего к меньшему: в,б,а).
    По умолчанию: ‘DESC’ suppress_filters(true/false)

    При true (по умолчанию) пропускает все хуки изменения SQL запроса, такого типа posts_* или comment_feed_* .

    Какие именно фильтры отключаются смотрите здесь.

    В функциях WP_Query и query_posts() этот параметр отключен по умолчанию (равен false).

    suppress_filters = true не виляет на работу фильтра pre_get_posts.

    Такое отключение фильтров по умолчанию, может ввести в замешательство, если есть плагины влияющие на вывод записей, через фильтры SQL запроса, например WPML. В таких случаях suppress_filters нужно отключить.

    По умолчанию: true

    Примеры

    #1 Выведем записи из рубрики

    Допустим у нас в категориях есть рубрика «Статьи» (ярлык articles ) в которую добавляются записи ( post_type=post ). Нам нужно вывести 6 таких записей на произвольной странице.

    #2 Вывод постов с отступом

    Если у вас на главной выводится один, последний пост, а нужно вывести еще 5 предыдущих из категории 1, то можно использовать такой код:

    #3 Вывод постов с отступом, без нарушения основного цикла.

    Если была использована функция get_posts() и после нее нужно использовать стандартный цикл WordPress, то нужно сохранить глобальную переменную $post , делает это так:

    #4 Возможность использовать специальные функции Цикла ВП

    Стандартно в цикле основанном на get_posts() невозможно использовать, например, функцию the_content() или the_date() . Эта проблема решается функцией setup_postdata() которой нужно передать переменную $post :

    Данные можно также получить через обращение к свойству объекта (объект->свойство_объекта). Например, для этого примера $post->ID будет равно ID поста, $post->post_content будет содержать контент записи. Свойство объекта это колонка таблицы БД posts. Название колонок можно посмотреть тут.

    Не забывайте, что на экран данные выводятся через php оператор echo :

    #5 Последние посты отсортированные по заголовку

    Получим последние посты отсортированные по заголовку в алфавитном порядке. Следующий пример выведет дату, заголовок и цитату поста:

    #6 Случайные посты

    Получим 5 случайных постов, реализуется за счет параметра ‘orderby’ => ‘rand’ :

    #7 Получить все прикрепленные файлы

    Используется за пределами Цикла WordPress. Следующий код выведет заголовок, ссылку и цитату прикрепленного файла:

    #8 Прикрепленные файлы определенного поста

    Код нужно использовать внутри Цикла WordPress, где переменная $post->ID :

    #9 Последние записи из той же рубрики

    Выведем список последних записей текущей рубрики, в которой находится запись. При этом исключим текущую запись:

    Заметки

    С версии 2.6 изменен ряд передаваемых значений у параметра orderby — префикс post_ был удален, например, было post_title, стало просто title.

  • С версии 3.0 параметрам include и exclude можно передавать и массивы ID.
  • Хотите дешево купить просмотры в Инстаграме на видео или ТВ-трансляцию, но не знаете, где? Попробуйте посетить сайт Doctor SMM, где Вам будет предложена одна из самых низких цен по рунету на просмотры. Торопитесь, так как предложение действует ограниченное время! К тому же здесь Вы сможете очень быстро приобрести ресурс с оптимальным, конкретно для Вашей страницы, скоростным режимом. Развивайте аккаунт быстро и легко!

    Источник