Создайте пользовательскую PHP-страницу и загрузите её по определённому слагу.

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

У меня есть болезненная проблема с клиентом. Им нужно загрузить ленту с удаленной конечной точки на страницу, которая соответствует дизайну их шаблона WordPress. Они также хотят отображать страницу по определенному URL.

Например

myclient.com/we-want-it-here

Я создал страницу, которая загружает ленту, и я могу включить заголовок и нижний колонтитул,

<?php
    define('WP_USE_THEMES', false);
    require('path/to/my-wordpress-dir/wp-blog-header.php');
    get_header();
?>
//Содержимое тела вашей XHTML-страницы здесь
<?php get_footer(); ?>

НО я не знаю, как сделать страницу частью схемы URL WordPress? Есть ли способ это осуществить?

Кроме того, эта страница также отображает “Страница не найдена” в заголовке, по очевидным причинам. Как я могу переопределить мета-теги на такой пользовательской странице, которая вынуждена существовать в этом неудобном окружении WordPress.

Любые предложения в правильном направлении будут очень-очень полезны!

Вы можете создать шаблон WordPress и затем установить вашу страницу myclient.com/we-want-it-here для использования этого шаблона.

Таким образом, вы сможете использовать get_header() и get_footer(), и включить ваш пользовательский код.

Надеюсь, это поможет!

Мне это тоже было нужно, и это было так просто, как:

add_filter('template_include', function ($template) {
    if (get_query_var('name') === 'we-want-it-here') {
        return get_stylesheet_directory() . 'path/to/my-standalone-page.php';
    }

    return $template;
}

Для проблемы с заголовком вы должны использовать плагин, который должен быть загружен до WordPress с использованием $GLOBALS['wp_filter']:

<?php
    define('WP_USE_THEMES', false);

function change_page_title ($title) {
        // Сделайте немного магии и в конечном итоге измените $title, затем верните его
        return "Ваш заголовок";
}

// Вместо add_filter( $tag, $function_to_add, $priority = 10, $accepted_args = 1 ):
$GLOBALS['wp_filter'][ 'pre_get_document_title' ][ 10000 ][] = array(
  'function'      => 'change_page_title',
  'accepted_args' => 1
);

    require( __DIR__ . '/../wp-blog-header.php');

    get_header();
?>
//Содержимое тела вашей XHTML-страницы здесь
<?php get_footer(); ?>

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

Создание пользовательской PHP страницы и ее загрузка по определенному URL в WordPress

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

1. Создание шаблона страницы WordPress

Вам потребуется создать выделенный шаблон для вашей пользовательской страницы. Выполните следующие шаги:

  1. Создайте новый файл в каталоге "themes":

    • Перейдите в папку с используемой темой: wp-content/themes/your-theme/.
    • Создайте новый файл, например, template-we-want-it-here.php.
  2. Определите шаблон страницы:
    В начале файла добавьте следующий комментарий, чтобы WordPress распознал этот файл как шаблон:

    <?php
    /**
    * Template Name: Custom Template for Remote Feed
    */
    get_header();
    ?>
    <!-- Ваш контент и код для загрузки удаленного фида -->
    <?php get_footer(); ?>
  3. Загрузите и обработайте удаленный фид:
    Поместите ваш код, который загружает фид, между get_header() и get_footer(). Убедитесь, что вы обрабатываете данные безопасно.

2. Регистрация персонализированного URL

Чтобы привязать шаблон к определенному URL:

  1. Создание новой страницы в админке WordPress:

    • Перейдите в "Страницы" > "Добавить новую".
    • Назовите страницу (например, "Мы хотим это здесь").
    • В разделе "Атрибуты страницы" выберите созданный шаблон "Custom Template for Remote Feed".
    • Сохраните страницу.
  2. Обработка маршрутизации:
    Используйте фильтр template_include для перенаправления на ваш шаблон:

    add_filter('template_include', function ($template) {
       if (is_page('we-want-it-here')) {
           return get_template_directory() . '/template-we-want-it-here.php';
       }
       return $template;
    });
  3. SEO и управление мета-тегами:
    Для смены заголовка страницы и других мета-тегов используйте хук WordPress pre_get_document_title или аналогичные фильтры:

    function change_page_title($title) {
       if (is_page('we-want-it-here')) {
           return "Ваш новый заголовок";
       }
       return $title;
    }
    add_filter('pre_get_document_title', 'change_page_title');

Заключение

Следуя вышеописанным шагам, вы создадите интегрированное решение, которое представит ваш фид на пользовательской странице по заданному URL, корректно интегрируясь в WordPress и SEO-схему. Это решение будет актуальным для удовлетворения требований вашего клиента и поддержания сложности проекта на базе стандартных инструментов WordPress.

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

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