5 эффективных методов получения идентификатора текущей страницы в WordPress с помощью jQuery

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

В этой статье мы рассмотрим несколько методов получения идентификатора текущей страницы в WordPress с помощью jQuery. Мы предоставим вам примеры кода и объясним каждый метод в разговорной форме. Итак, давайте углубимся и найдем метод, который лучше всего соответствует вашим потребностям!

Метод 1: использование функции wp_localize_script
Один из способов получить идентификатор текущей страницы в WordPress — использовать функцию wp_localize_script. Эта функция позволяет передавать данные на стороне сервера в ваши файлы JavaScript. Вот пример того, как его можно использовать:

// In your functions.php file
function enqueue_custom_script() {
    wp_enqueue_script( 'custom-script', get_template_directory_uri() . '/js/custom-script.js', array( 'jquery' ), '1.0', true );
    $current_page_id = get_the_ID();
    wp_localize_script( 'custom-script', 'pageData', array(
        'currentPageID' => $current_page_id
    ) );
}
add_action( 'wp_enqueue_scripts', 'enqueue_custom_script' );
// In your custom-script.js file
jQuery(document).ready(function($) {
    var currentPageID = pageData.currentPageID;
    console.log(currentPageID);
});

Метод 2: извлечение идентификатора страницы из основного класса
WordPress присваивает уникальные классы элементу body каждой страницы. Один из этих классов содержит идентификатор страницы. Вы можете извлечь его, используя селектор классов jQuery и некоторые манипуляции со строками:

jQuery(document).ready(function($) {
    var bodyClasses = $('body').attr('class').split(' ');
    var currentPageID;
    $.each(bodyClasses, function(index, className) {
        if (className.indexOf('page-id-') !== -1) {
            currentPageID = className.split('-')[2];
            return false; // Exit the loop
        }
    });
    console.log(currentPageID);
});

Метод 3: получение идентификатора страницы через REST API
Если у вас включен REST API WordPress, вы можете использовать его для получения текущего идентификатора страницы. Вот пример того, как это сделать:

jQuery(document).ready(function($) {
    var restUrl = wpApiSettings.root + 'wp/v2/posts?per_page=1&orderby=date&order=desc';
    $.get(restUrl, function(posts) {
        var currentPageID = posts[0].id;
        console.log(currentPageID);
    });
});

Метод 4: использование скрытого поля ввода в шаблоне страницы
Вы можете встроить скрытое поле ввода, содержащее идентификатор страницы, в шаблон страницы, а затем получить к нему доступ с помощью jQuery:

<input type="hidden" id="current-page-id" value="<?php echo get_the_ID(); ?>">
jQuery(document).ready(function($) {
    var currentPageID = $('#current-page-id').val();
    console.log(currentPageID);
});

Метод 5: использование REST API с настраиваемыми конечными точками
Если вы создали настраиваемые конечные точки REST API в вашей установке WordPress, вы можете использовать их для получения идентификатора текущей страницы. Вот пример:

jQuery(document).ready(function($) {
    var restUrl = wpApiSettings.root + 'my-custom-endpoint';
    $.get(restUrl, function(response) {
        var currentPageID = response.current_page_id;
        console.log(currentPageID);
    });
});

В этой статье мы рассмотрели пять эффективных методов получения идентификатора текущей страницы в WordPress с помощью jQuery. Мы рассмотрели различные подходы, в том числе использование функции wp_localize_script, извлечение идентификатора страницы из основного класса, использование REST API и использование скрытых полей ввода или пользовательских конечных точек.

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

Так что вперед, внедряйте эти методы и поднимите свои навыки разработки WordPress на новый уровень!