Как получить идентификатор страницы по слагу страницы

Вопрос или проблема

Я довольно новичок в WordPress и хотел бы узнать, могу ли я получить page id с помощью его slug. Это возможно, пожалуйста, дайте знать.

Используйте get_page_by_path($page_path):

$page = get_page_by_path('about');
echo get_the_title($page);

Это вернёт обычный объект поста.
Документация:
https://developer.wordpress.org/reference/functions/get_page_by_path/
https://developer.wordpress.org/reference/functions/get_the_title/

Я использую это …

function get_id_by_slug($page_slug) {
    $page = get_page_by_path($page_slug);
    if ($page) {
        return $page->ID;
    } else {
        return null;
    }
} 

Надеюсь, это поможет кому-то.

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

 function get_page_by_slug($page_slug, $output = OBJECT, $post_type="page" ) { 
  global $wpdb; 
   $page = $wpdb->get_var( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_name = %s AND post_type= %s AND post_status="publish"", $page_slug, $post_type ) ); 
     если ( $page ) 
        вернуть get_post($page, $output); 
    возвращает null; 
  }

Существует функция url_to_postid с версии WordPress v1.0.0 🙂 Эту задачу легче всего выполнить, используя эту функцию.

url_to_postid

Когда страница является верхнеуровневой страницей, необходимо указать только slug.

например, url_to_postid('slug');

Когда страница находится на нижнем уровне иерархии (т.е. имеет родительскую), нужно добавить slug родителя, разделённый слэшем, следующим образом:

url_to_postid('parent-slug/child-slug');

Редактировать: если это возвращает 0, вы должны обновить постоянные ссылки (откройте страницу постоянных ссылок в админке WordPress) – это нужно сделать только один раз

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

<?php $query = new WP_Query( array( 'pagename' => 'about-me' ) );
    while ( $query->have_posts() ) {
        $query->the_post();
        echo '<h2>'. get_the_title() .'</h2>';
        the_content();
    }
    wp_reset_postdata();
?>

Возможно, это всё же будет полезно кому-то ;D

Много ответов здесь кажутся излишне сложными или не описывают, как именно получить ID страницы.

            $page = get_page_by_path("your-page-slug");
            если ($page) {
                $page_id =  $page->ID;
                echo $page_id;
            }

В приведённом выше описании мы назначили объект поста $page – как только у вас будет объект поста, вы сможете получить любую из описанных информаций здесь: https://codex.wordpress.org/Class_Reference/WP_Post

            $page->ID
            $page->post_status
            $page->post_title

и многое другое

<?php  function get_page_ID_by_slug( $slug ) {
    $page = get_page_by_path( $slug );
    если ( $page ) {
        вернуть (int) $page->ID;
    }
    иначе {
        вернуть null;
    }
}
?>

Надеюсь, это предложение будет полезным кому-то.

Вы можете вставить ссылку WordPress в этот ID grabber.

Мне часто нужны IDs постов для удаления или исключения страниц в WordPress, поэтому я написал скрипт для этого и добавил его на свой сайт: https://www.basrh.com/id-grabber

.

Ответ или решение

Вопрос о том, как получить ID страницы WordPress, зная её slug (слаг), актуален для многих разработчиков и администраторов сайтов, особенно для тех, кто работает с автоматизацией задач или управлением контентом через программный код. WordPress предлагает несколько методов для решения этой задачи, включая функции API и стандартные инструменты.

Теория

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

WordPress предлагает несколько способов получения ID страницы по slug’у. Один из наиболее часто используемых методов — функция get_page_by_path(). Она возвращает объект поста, если находит соответствие, что позволяет извлечь ID страницы или другие её свойства.

Пример

Ниже представлен пример функции, которая извлекает ID страницы, используя этот метод:

function get_page_ID_by_slug($slug) {
    $page = get_page_by_path($slug);
    if ($page) {
        return (int) $page->ID;
    } else {
        return null;
    }
}

Эта функция принимает на вход slug страницы, использует метод get_page_by_path() для поиска страницы по этому слагу и возвращает её ID. Если страница не найдена, функция вернет null.

Кроме того, можно использовать SQL-запросы напрямую через объект $wpdb для выполнения выборки напрямую из базы данных. Этот метод мощнее, но требует большего внимания к безопасности и оптимизации.

function get_page_by_slug($page_slug, $output = OBJECT, $post_type = "page") {
    global $wpdb;
    $page = $wpdb->get_var($wpdb->prepare(
        "SELECT ID FROM $wpdb->posts WHERE post_name = %s AND post_type = %s AND post_status = 'publish'",
        $page_slug, $post_type
    ));
    if ($page) {
        return get_post($page, $output);
    }
    return null;
}

Применение

Понимание того, как извлечь ID страницы, имеет несколько практических приложений:

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

  2. Работа с плагинами: Некоторые плагины требуют указания ID страниц для правильной конфигурации и работы.

  3. Оптимизация навигации: Используя ID, вы можете создавать динамические элементы интерфейса, такие как меню или ссылки, которые автоматически обновляются в зависимости от изменений в базе данных.

  4. Интеграция с внешними сервисами: Автоматическая передача ID страницы в сторонние сервисы, такие как аналитика или маркетинговые платформы.

Рекомендации

  • Производительность: При использовании SQL-запросов убедитесь, что они выполнены оптимально и не создают нагрузку на базу данных.
  • Безопасность: Всегда используйте механизм подготовленных запросов для предотвращения SQL-инъекций.
  • Совместимость: Уточняйте версию WordPress и состояние постоянных ссылок, так как некорректно настроенные пермалинки могут повлиять на работоспособность некоторых функций, например, url_to_postid() может вернуть 0, если пермалинки не были обновлены.

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

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

Капча загружается...