Получение слага записи всегда зависит от того, находитесь ли вы в цикле или нет.
Пример 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() . С ее помощью так же можно получить любое необходимое вам поле данных поста.
Как получить серую галочку в VK через ГосУслуги / Tinkoff ID/ Сбер ID в 2023 году любому (Только РФ)
Она принимает три параметра. Первый — название поля, данные которого нужно получить. Второй — 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 ; $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 не повлияет на результат функции.
Разумеется, если переданныя ссылка будет содержать пагинацию, гет-запросы или еще что-то, регулярное выражение из этого примера не сработает.
Насколько публикация полезна?
Нажмите на звезду, чтобы оценить!
Как получить галочку в VK через Госуслуги или Tinkoff ID для всех
Средняя оценка 5 / 5. Количество оценок: 2
Оценок пока нет. Поставьте оценку первым.
Похожие посты
- 6 сентября, 2021
- 1538
Как сделать webp без плагинов в WordPress
WebP — это современный формат сжатия изображений без потери качества, который напрямую влияет на скорость загрузки сайта. Конвертирование изображений из jpg и png в формат webp может дать существенный прирост в баллах по google page speed. Формат webp поддерживается большинством современных браузеров. Вы без труда можете найти плагины, которые помогут вам автоматически конвертировать изображения, добавленные…
- 6 сентября, 2021
- 1342
Как вывести все изображения из произвольной папки без плагинов в WordPress
При разработке своих сайтов вам может понадобиться вывести галереи изображений из произвольных папок без их загрузки в библиотеку. Давайте рассмотрим пример, как это сделать с помощью шорткода: Использование: [folder-gallery path=’/data/images/’] Как видите, функция принимает путь до искомой папки (обязательно с открывающим и закрывающим слешем), в функции устанавливаются разрешенные типы изображений и формируется вывод с классами…
- 3 сентября, 2021
- 528
Как изменить выравнивание и размер изображения при вставке в редактор WordPress
При добавлении изображения в пост, по умолчанию WordPress вставляет его в размере medium и без выравнивания. Чтобы при загрузке картинки ей прописывалось выравнивание по центру и полный размер, вы можете использовать такой код:
Разработка сайтов для бизнеса
Если у вас есть вопрос, на который вы не знаете ответ — напишите нам, мы поможем разобраться. Мы всегда рады интересным знакомствам и новым проектам.
Источник: artzolin.ru
get_the_ID() │ WP 2.1.0
Возвращает ID текущего поста в цикле. Используется только внутри цикла.
ID поста в цикле можно получить еще через $post->ID , так зачастую проще — нет лишних обращений к функциям.
Работает на основе: get_post()
Основа для: the_ID()
1 раз — 0.000037 сек (очень быстро) | 50000 раз — 0.28 сек (очень быстро) | PHP 7.1.2, WP 4.7.3
Возвращает
int|false . ID поста.
Использование
$post_id = get_the_ID();
Примеры
#1 Выведем на экран произвольное поле поста с использованием функции get_the_ID():
$post_id = get_the_ID(); echo get_post_meta( $post_id, ‘meta_key’, 1); // или можно так: echo get_post_meta( get_the_ID(), ‘meta_key’, 1);
#2 Получим ID записи
Обычно ID поста внутри цикла можно получить через $post->ID , но в некоторых случаях может пригодится получать его так:
$post_id = get_the_ID(); // $post_id будет содержать ID текущего в цикле поста
Добавить свой пример
Список изменений
С версии 2.1.0 | Введена. |
Код get_the_ID() get the ID WP 6.2.2
function get_the_ID() < // phpcs:ignore WordPress.NamingConventions.ValidFunctionName.FunctionNameInvalid $post = get_post(); return ! empty( $post ) ? $post->ID : false; >
Cвязанные функции
loop (Цикл WP)
- get_the_author()
- get_the_author_link()
- get_the_content()
- get_the_excerpt()
- get_the_tag_list()
- get_the_tags()
- setup_postdata()
- the_author()
- the_content()
- the_date()
- the_excerpt()
- the_ID()
- the_permalink()
- the_post()
- the_tags()
- the_time()
Записи: посты, страницы, .
- edit_post_link()
- get_delete_post_link()
- get_edit_post_link()
- get_permalink()
- get_post_field()
- get_post_status()
- get_post_time()
- get_sample_permalink()
- get_the_date()
- get_the_modified_date()
- get_the_modified_time()
- get_the_permalink()
- get_the_time()
- get_the_title()
- get_the_title_rss()
- has_excerpt()
- post_password_required()
- register_post_status()
- single_post_title()
- the_excerpt_rss()
- the_modified_date()
- the_title()
- the_title_attribute()
Источник: wp-kama.ru
Не могу получить ID статьи/поста
Как только пыатюсь добавить кнопку в шаблон-статью «Добавить в избранное»:
Получаю ошибку при переходе по урл статьи: NoReverseMatch at /novayastatya/
Reverse for ‘favourite_post’ with keyword arguments » not found. 1 pattern(s) tried: [‘favourite_post$’] Нид хелп
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.
Подписка на обсуждение 3
Подписка на раздел 96
Вам это нравится? Поделитесь в социальных сетях!
Источник: evileg.com