В WordPress каждое сообщение имеет уникальный идентификатор, известный как идентификатор сообщения. Иногда вам может потребоваться получить идентификатор сообщения из заданного URL-адреса сообщения для различных целей, таких как настройка шаблонов, создание перенаправлений или выполнение определенных действий программным способом. В этой статье мы рассмотрим несколько методов получения идентификатора записи WordPress из URL-адреса, а также приведем примеры кода.
Метод 1: использование функции get_the_ID()
WordPress предоставляет встроенную функцию get_the_ID()
, которая возвращает идентификатор текущего сообщения. Временно установив URL-адрес публикации в качестве текущей публикации, мы можем использовать эту функцию для получения идентификатора публикации. Вот пример:
$url = 'https://your-wordpress-site.com/sample-post/';
$post_id = url_to_postid($url);
if ($post_id) {
$original_post = $post;
$post = get_post($post_id);
$id = get_the_ID();
$post = $original_post;
echo 'Post ID: ' . $id;
} else {
echo 'Invalid URL.';
}
Метод 2: анализ URL-адреса.
Другой подход – анализ URL-адреса и непосредственное извлечение идентификатора сообщения. Этот метод предполагает, что идентификатор публикации присутствует в структуре URL. Вот пример:
$url = 'https://your-wordpress-site.com/sample-post/';
$pattern = '/^.*\/(\d+)(\/.*)?$/';
preg_match($pattern, $url, $matches);
if (isset($matches[1])) {
$post_id = $matches[1];
echo 'Post ID: ' . $post_id;
} else {
echo 'Invalid URL.';
}
Метод 3: использование REST API WordPress
Если на вашем сайте WordPress включен REST API, вы можете использовать его для получения идентификатора сообщения, отправив запрос GET на конечную точку API. Вот пример использования cURL:
$url = 'https://your-wordpress-site.com/sample-post/';
$api_url = $url . 'wp-json/wp/v2/posts?slug=' . basename($url);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $api_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
$data = json_decode($response, true);
if (!empty($data) && isset($data[0]['id'])) {
$post_id = $data[0]['id'];
echo 'Post ID: ' . $post_id;
} else {
echo 'Invalid URL or post not found.';
}
В этой статье мы рассмотрели несколько методов получения идентификатора записи WordPress по заданному URL-адресу. Мы рассмотрели использование функции get_the_ID()
, анализ URL-адреса и использование REST API WordPress. В зависимости от ваших конкретных требований и наличия определенных функций вы можете выбрать наиболее подходящий метод для вашего проекта WordPress. Не забывайте соответствующим образом обрабатывать случаи ошибок, чтобы обеспечить удобство работы пользователя.
Реализуя эти методы, вы можете легко получить идентификатор публикации из URL-адреса WordPress и использовать его для различных целей, расширяя функциональность и настраивая свой веб-сайт WordPress.