flexbe banner 468x60flexbe banner 728x90flexbe banner 930x180beget banner 468x60beget banner 728x90beget banner 930x180smsc banner 468x60smsc banner 728x90smsc banner 930x180

Как получить слаг из записи в WordPress?

Получение слага записи всегда зависит от того, находитесь ли вы в цикле или нет.

Пример 1: get_queried_object()

Проверить какой объект цикла сейчас установлен можно, например с помощью функции get_queried_object()

vardump(get_queried_object()) // печатаем данные
$post_id = get_queried_object()->ID // получаем ID
$post_slug = get_queried_object()->post_name // получаем slug

Функция vardump() не является функцией ядра WordPress, она служит для удобной печати переменных, подробнее тут.

Если вы выводите посты на странице категории или таксономии, функция get_queried_object() может отдать вам данные этой категории или таксономии.

Чтобы получить данные именно поста, вы должны находиться в цикле wp_query или get_posts() c установленной переменной setup_postdata(). Для wp_query она устанавливается автоматически, в то время как для get_posts() вы должны установить ее самостоятельно.

Пример 2: get_post_field()

Еще одна удобная функция — get_post_field(). С ее помощью так же можно получить любое необходимое вам поле данных поста.

Она принимает три параметра. Первый — название поля, данные которого нужно получить. Второй — ID поста, который берется из текущего цикла и является не обязательным. Третий — необязательный фильтр получаемого поля. Синтаксис:

get_post_field( $field, $post, $context ); // общий синтаксис
$post_slug = get_post_field( 'post_name', get_the_ID() ); // получаем slug
$post_slug = get_post_field( 'post_name' ); // тоже самое, указание ID не обязательно

Пример 3: глобальная переменная $post

Вы можете установить глобальную переменную $post, если она не установлена, чтобы получить из нее необходимые данные. Синтаксис:

global $post; // устанавливаем переменную
vardump($post) // печатаем данные
$post_slug = $post->post_name; // получаем slug

Пример 4: вне цикла

Для всех случаев, когда вы находитесь вне нужного вам цикла, получить слаг конкретной записи вы можете зная его ID с помощью функции get_post()

$post_id = 10; // ID поста
$post = get_post($post_id); // получаем данные
vardump($post) // печатаем данные
$post_slug = $post->post_name; // получаем slug

Пример 5: с помощью регулярки

Вы можете получить слаг из ссылки с помощью регулярного выражения.

$link = 'https://artzolin.ru/wordpress-examples/how-to-get-post-slug-from-post-in-wordpress/';

$regexp = "/\/(?<slug>[\w\d\-]+)[\/]?$/";
$reglink = preg_match($regexp, $link, $match_link);
$post_slug = $match_link['slug'];
vardump($post_slug); // печатает how-to-get-post-slug-from-post-in-wordpress

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

Разумеется, если переданныя ссылка будет содержать пагинацию, гет-запросы или еще что-то, регулярное выражение из этого примера не сработает.

kwork banner 480x320kwork banner 728x90kwork banner 120x600jivo banner 480x320jivo banner 728x90jivo banner 120x600smsc banner 480x320smsc banner 728x90smsc banner 120x600

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 5 / 5. Количество оценок: 2

Оценок пока нет. Поставьте оценку первым.

Похожие посты

Как сделать webp без плагинов в WordPress

WebP — это современный формат сжатия изображений без потери качества, который напрямую влияет на скорость загрузки сайта. Конвертирование изображений из jpg и png в формат webp может дать существенный прирост в баллах по google page speed. Формат webp поддерживается большинством современных браузеров. Вы без труда можете найти плагины, которые помогут вам автоматически конвертировать изображения, добавленные…
Подробнее

Как вывести все изображения из произвольной папки без плагинов в WordPress

При разработке своих сайтов вам может понадобиться вывести галереи изображений из произвольных папок без их загрузки в библиотеку. Давайте рассмотрим пример, как это сделать с помощью шорткода: Использование: [folder-gallery path=’/data/images/’] Как видите, функция принимает путь до искомой папки (обязательно с открывающим и закрывающим слешем), в функции устанавливаются разрешенные типы изображений и формируется вывод с классами…
Подробнее

Как изменить выравнивание и размер изображения при вставке в редактор WordPress

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