Как узнать id страницы wordpress
Перейти к содержимому

Как узнать id страницы wordpress

  • автор:

13 способов узнать ID записи или страницы

Понимаю, что я уже немного подзадолбал прошаренных в WordPress читателей своего сайта публикацией постов для новичков. Что же, постараюсь в итоге найти в этом золотую середину.

В этом уроке рассмотрим 13 вариантов (да, целых 13!) получения айди постов в WordPress. Способы будут усложняться от самых простых в начале до самых хитрых в конце. Также в конце урока, теперь уже традиционно, вас ждёт его видео обзор.

1. Его содержит URL страницы редактирования записи/страницы

Тут всё просто, в админке переходим на страницу редактирования записи и видим в URL параметр post , он нам и нужен!

То есть переходите в Записи или в Страницы, выбираете нужную и открываете её редактирование.

ID записи или страницы в URL админки

2. При отключенных постоянных ссылках сайта, вы его точно не упустите

Если вы не используете постоянные ссылки (ЧПУ), в чём я сильно сомневаюсь, то URL записей и страниц будут в чистую содержать их айдишники.

Можете прямо сейчас попробовать, если не знали об этом раньше. Для этого переходим в Настройки — Постоянные ссылки и там выбираем самую первую опцию — Простые.

После этого перейдите непосредственно на страницу какой-либо записи или страницы WordPress и вот что вы увидите. Это и есть ID записей и страниц.

ID записи WordPress при отключенных постоянных ссылках

Тут только важно обратить внимание, что для записей параметр будет называться p , а для страниц page_id .

3. Добавление дополнительной колонки с ID записей и страниц в админку

Примерно так это будет выглядеть:

Отображение ID записей и страниц в отдельной колонке в админке WordPress

Я не хочу дублировать один и тот же код со своих разных уроков, поэтому реализацию своей собственной колонки с ID постов вы найдёте по этой ссылке. Не беспокойтесь, там очень просто — достаточно скопировать готовый код в functions.php текущей темы.

4. ID поста можно найти, заглянув в phpMyAdmin

Окей, простыми словами, начну с того, что phpMyAdmin — это такое место, которое вы можете найти у себя на хостинге (или на локалке), в котором вы можете управлять своей базой данных сайта. Это я на всякий случай, для тех, кто не имеет представления о ней.

Так вот, когда вы её откроете, то сможете спокойно подсмотреть ID любой записи, любой страницы, да и вообще любого поста произвольного типа, если перейдёте в таблицу wp_posts (или вашпрефикс_posts, о том как и зачем менять префикс, читайте тут ).

Отображение ID постов в phpMyAdmin

5. ID поста содержится в объекте этого поста

И так плавно мы переходим в код. Тут я буду подразумевать, что у вас уже есть какие-то базовые знания о PHP, если нет, то дальше можно не читать 🙂 Ну хотя в принципе можете глянуть видео.

В зависимости от ситуации, объект поста можно получить разными способами. Но так как в начале этого урока подразумевается, что мы не в курсе, какой ID искомой записи, то будем использовать именно глобальный объект:

global $post; echo $post->ID; // вывели ID текущей записи или страницы

Глобальный объект поста — это либо запись/страница, на которой вы находитесь, либо та, которая прокручивается в данный момент в цикле.

6. Внутри цикла мы всегда можем воспользоваться функциями the_id() и get_the_id()

На самом деле этот пункт практически эквивалентен предыдущему. Суть в том, что, когда вы находитесь внутри страницы записи или внутри цикла, то можете смело получать или выводить ID текущего материала при помощи get_the_id() или the_id() соответственно.

7. Как определить ID записи или страницы по её заголовку?

О, а сейчас вам предстоит познакомиться с некоторыми функциями WordPress, о которых вы возможно не знали. И первая из них — get_page_by_title(). Пусть вас не смущает её название, она прекрасно работает не только со страницами, но и с записями, да и вообще с любыми другими типами постов.

$misha_post = get_page_by_title( 'Привет, мир!', '', 'post' ); echo $misha_post->ID;

8. А по ярлыку? (слагу)

Удивляюсь, что когда-то описывал эти функции у себя в Кодексе, но сейчас я очень рад, что это сделал, так как могу спокойно на них ссылаться. Итак, функция get_page_by_path().

И сразу опробуем её в действии:

$misha_post = get_page_by_path('privet-mir', '', 'post'); echo $misha_post->ID;

Ну, и я думаю, не нужно лишний раз напоминать, что если хотите почитать больше о функции, просто переходите по этим ссылкам, я же не просто так их сюда вставляю.

9. В WordPress даже есть функция, которая возвращает ID поста, если мы передадим в неё его URL

Сразу выведу ID в примере:

echo url_to_postid( 'https://misha.agency/wordpress/kak-poluchit-id-posta.html' );

10. Как определить ID страницы, отображаемой на главной?

Если бы меня спросили, где чаще всего косячат люди, которые начинают работать с WordPress, я бы не задумываясь ответил — это главная страница и Настройки — Чтение, а также иерархия всего этого добра.

Тем не менее, если вы выставили тут какую-то страницу для отображения на главной:

Настройки Чтения в WordPress

То тогда вы можете вывести её ID в любом месте, где захотите, используя эту строчку кода:

echo get_option( 'page_on_front' );

То же самое кстати касается и страницы, которую вы выбрали в качестве Блога.

echo get_option( 'page_for_posts' );

11. Внутри WP_Query

На самом деле это просто частный случай пятого способа, но тем не менее не все его знают, поэтому я его сюда включаю и даже объясню всё.

Смотрите, мы создаём объект WP_Query и присваиваем его в переменную:

$x = new WP_Query( 'posts_per_page=-1' );

После этого все функции работы с циклом чудесным образом превращаются в методы этого объекта.

if( $x->have_posts() ) : // без WP_Query это просто have_posts() while( $x->have_posts() ) : $x->the_post(); // без WP_Query это просто функция the_post();

Так же и объект поста внутри цикла превращается из $post в $x->post , а значит ID поста будет выглядеть:

echo $x->post->ID;

Как только в этом разобраться, оно становится очень просто.

12. Как получить все ID постов, содержащих определенную пару из мета ключа и значения?

Не нашёл подобной функции в WordPress, поэтому решил соорудить её сам:

function truemisha_post_id_by_metas( $key, $value ){ global $wpdb; // получаем массив из всех ID, подходящих под заданные мета ключ и значение $all_posts = $wpdb->get_col( $wpdb->prepare( "SELECT post_id FROM $wpdb->postmeta WHERE meta_key = %s AND meta_value = %s", $key, $value ) ); // это уже необязательно, я просто сделал, что если ID найден только один, то он и возвращается в виде числа, // а если несколько постов удовлетворяют условию, то они и будут возвращены в виде массива if( count( $all_posts ) > 1 ) return $all_posts; // массив else return $all_posts[0]; // целое }

Конечно, если вы умеете строить SQL-запросы, то вы можете создать любую подобную функцию, но если нет, то вставляете её куда-нибудь в functions.php и потом используете в любом месте темы.

echo truemisha_post_id_by_metas( 'post_views', 1000000 ); // а лучше не echo а print_r - ведь у нас там может быть массив

13. И напоследок, получим все ID постов, содержащихся в определенной рубрике или отмеченные определенным тегом

И ещё одна готовая функция для вас, очень похожа на функцию из предыдущего способа.

function truemisha_post_id_by_cat_tag( $cat_or_tag_id ){ global $wpdb; $all_posts = $wpdb->get_col( $wpdb->prepare( "SELECT object_id FROM $wpdb->term_relationships WHERE term_taxonomy_id = %d", $cat_or_tag_id ) ); return $all_posts; }

Видеоурок

Не забывайте подписываться на мой YouTube-канал 🙂 Это будет меня мотивировать и дальше записывать видео. P.S. У меня там реклама отключена! И не планируется.

Смотрите также

Миша

Впервые познакомился с WordPress в 2009 году. Организатор и спикер на конференциях WordCamp. Преподаватель в школе Нетология.

Пишите, если нужна помощь с сайтом или разработка с нуля.

  • Из URL в админке
  • Из URL сайта
  • Добавление колонки
  • В phpMyAdmin
  • В глобальном объекте
  • the_id() и get_the_id()
  • Определение по заголовку
  • По ярлыку
  • По URL поста
  • Из настроек чтения
  • В цикле WP_Query
  • По значениям произвольных полей
  • По ID рубрики/метки
  • Видеоурок
Комментарии — 11

Ирина 3 Дек 2019

Привет. Ищу инфу о ID в WP и увидела эту статью — уверенна автор и мне подскажет решение:) У меня другая проблема с айдишками — приняла администрирование после предыдущего админа и о проблеме узнала соответственно — когда она «вылезла» 🙁
Есть Личный Кабинет ученика на WP. Учеников стало много и добавляться десятками за раз — и айди юзера стало совпадать с айди записи
(предыдущий админ просто наперед делал десяток записей, так как записей меньше чем юзеров, но мне сообщил это на днях только. ) Айди юзера, например, 5861 — и если есть записьс айди 5861, у которой присвоена своя метка для доступа — у юзера все ЕГО доступы(метки) пропадут.
Будут такие только метки, как у записи:( Возможно есть готовые решения в таких случаях?

Как узнать ID записи или страницы на WordPress.

Довольно часто при работе с системой WordPress нужно узнать уникальный номер, идентификатор (ID) записи или страницы, с которой вы работаете. Этот номер есть у каждой записи и страницы и он делает ее уникальной от других, чтобы по нему можно было легко ее найти.

Он может понадобиться для произведения настроек блога, либо каких-либо программных операций, особенно в программировании на WordPress.

Например, в настройках некоторых плагинов нужно указать эти номера и на страницах с такими ID будут отображаться те или иные элементы или производиться какие-то действия.

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

1 способ. Через администраторскую панель сайта (консоль)

Чтобы узнать ID записи, пройдите в меню «Записи — Все записи» и наведите курсор на нужную запись. Внизу окна браузера у вас должна появиться контекстная строка, в которой параметром post указывается уникальный номер записи.

15-08-2014 6-58-54

Аналогично, номер ID можно узнать для страницы в меню «Страницы — Все страницы».

2 способ. Переходя на конкретную запись или страницу.

Если вы вошли на свой сайт как администратор, вы можете просто открыть страницу или запись в браузере, номер которой нужно узнать и вверху должна появиться вот такая полоса.

16-08-2014 9-06-06

Можете навести курсор мыши на ссылку «Редактировать страницу» и так же внизу браузера увидеть ID страницы или записи.

Все довольно просто. Желаю удачи.

Больше моих уроков по Worpdress здесь.

Как узнать id в WordPress

Всем объектам сайта WordPress присваивается номер id. Как узнать id страницы, записи блога, рубрики, изображения, пользователя и т.д., когда используются «понятные человеку URL»? Как узнать id и Как узнать id в php-коде (id объекта текущего запроса, для текущего поста внутри цикла WordPress и по заголовку страницы)

По умолчанию url-адреса страниц сайта (ссылки на страницы) имеют вид
сайт.ру/?p=id
т.е. включают знак вопроса и число, номер id, под которым объект хранится в базе данных, например:

http://wordpress.howtoo.ru/?p=1381

Администратор сайта обычно выбирает в настройках другую, более удобную структуру постоянных ссылок, например,
сайт.ру/название-рубрики/название-записи
Но что, если где-то нужно указать id конкретного объекта WordPress?

  • 1 Как узнать id:
  • 2 Как узнать id в php-коде:
    • 2.1 Текущая веб-страница
    • 2.2 id текущей страницы внутри цикла WordPress
    • 2.3 id по заголовку постоянной страницы (Page)

    Как узнать id:

    Вам нужно узнать id записей, медиафайлов, пользователей и т.д.? Это можно сделать несколькими способами:

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

    Короткая ссылка

    Короткая ссылка

    Как узнать id в php-коде:

    Текущая веб-страница

    Узнать id объекта WordPress, страницу которого просматривает посетитель:
    Извлечение id объекта текущего запроса:

    $wp_query->get_queried_object_id() // или с WordPress версии 3.1.0 get_queried_object_id()

    Функция get_the_ID возвращает, а функция the_ID выводит id текущей веб-страницы.
    Например, так можно создать уникальный id элемента на странице (в XHTML id не должен начинаться с цифры):

    id текущей страницы внутри цикла WordPress

    Внутри цикла WordPress, а их в php-коде для вывода веб-страницы может быть несколько (см. Циклы WordPress), id можно узнавать так же, как и другие параметры:

    Как получить id страницы (не записи) в WordPress средствами PHP?

    Всем привет. Речь пойдет о CMS WordPress. Задача — нужно получить id страницы (не записи), которая сейчас открыта пользователем в файле functions.php темы. Это нужно для того, чтобы некоторый код продолжал работу после настройки ЧПУ (постоянные ссылки, mod_rewrite). Версия WordPress 4.2.1

    Пробовал такие варианты, но они не работают:

    // Since 3.1 - recommended! $page_object = get_queried_object(); $page_id = get_queried_object_id(); // "Dirty" pre 3.1 global $wp_query; $page_object = $wp_query->get_queried_object(); $page_id = $wp_query->get_queried_object_id();
    • Вопрос задан более трёх лет назад
    • 5456 просмотров

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *