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

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

Я использую WordPress 5.9+ и создание пользовательских типов записей стало относительно легким. Но наличие целевой страницы для пользовательского типа записи – это новая задача для меня.

  • Я успешно создал пользовательский тип записи под названием Career Finders
  • Я создал шаблон архива для этого пользовательского типа записи, названный archive-career-finders.php
  • Я вижу, что этот шаблон используется в браузере, когда я перехожу по своему локальному URL my-site.com/career-finders

Но как нам создать страницу или запись через WP-админ, которая будет связана с этим шаблоном архива и “будет” целевой страницей для пользовательского типа записи?

Я хочу, чтобы редакторы могли добавлять контент на эту целевую страницу через wp-admin. Здесь я застрял…

Моя первоначальная мысль:
На этом новом шаблоне архива, нужно ли мне использовать цикл WP-Query, чтобы получить эту “1” страницу или запись, которая представляет собой необходимый контент для отображения здесь, и также сделать эту страницу Частной? Это правильный подход?

Большое спасибо!

Если я правильно понимаю ваш вопрос, вы ищете шаблоны. Скопируйте ваш single.php или page.php из вашей темы, а затем переименуйте его в single-career-finders.php.

Это то же самое, что вы должны были сделать и для вашей страницы архива… Возьмите файл archive.php из вашей темы, скопируйте его и переименуйте в archive-career-finders.php. В нем будет соответствующий запрос, чтобы извлекать ваши пользовательские записи, но вы также можете изменить контент. Вам не нужно добавлять отдельный WP_Query здесь.

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

Эта страница содержит отличное объяснение того, как работают шаблоны в WordPress:
https://developer.wordpress.org/themes/basics/template-hierarchy/

После некоторых раздумий, я принимаю следующий подход

  • В области моего пользовательского типа записи в wp-admin/ создаю публичную запись, которая представляет содержимое для моей целевой страницы пользовательского типа записи. Эта запись находится по адресу my-site.com/career-finders/landing-content
  • В области дочерней темы устанавливаю код, чтобы скрыть эту запись от страниц Архива, результатов поиска, RSS-ленты и блогов. Эта статья вдохновила меня на этот процесс.
  • Внутри моего шаблона archive-career-finders.php извлекаю данные из моей страницы /landing-content с помощью setup_postdata($p);, вдохновляясь этой записью
  • Теперь, когда пользователь заходит на my-site.com/career-finders, он увидит содержимое целевой страницы для моего пользовательского типа записи.

Это, по моему мнению, самый простой способ позволить редактору wp-admin добавлять контент в запись, которая связана с пользовательским шаблоном архива для пользовательского типа записи.

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

Для создания страницы лендинга для вашего пользовательского типа записи (CPT) в WordPress, следуя вашим требованиям и предоставленной информации, вы можете использовать следующий подход:

Шаг 1: Создание Поста для Лендинга

  1. Добавьте новый Пост в области пользовательского типа записи (CPT) вашего администрирования. Это пост будет представлять контент для вашего лендинга. Например, вы можете создать пост с заголовком "Контент для Карьерных Поисков".
  2. Убедитесь, что данный пост будет доступен по URL: my-site.com/career-finders/landing-content.

Шаг 2: Скрытие Поста от Архивов и Поиска

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

  1. Используйте Плагины: Существует множество плагинов, которые позволяют скрывать посты или страницы. Например, плагин "WP Hide Post" может помочь вам с этой задачей.
  2. Добавьте Код в Файл functions.php: Вы можете использовать следующий код, чтобы скрыть пост с определенным ID (скажем, ID вашего поста равен 123):

    function hide_post_from_search($query) {
       if ($query->is_search) {
           $query->set('post__not_in', array(123));
       }
       return $query;
    }
    add_filter('pre_get_posts', 'hide_post_from_search');

Шаг 3: Изменение archive-career-finders.php

В вашем archive-career-finders.php добавьте следующий код, чтобы вызвать данные из вашего поста лендинга:

<?php
// Запрос поста контента landing-content
$landing_post = get_page_by_path('career-finders/landing-content');

// Проверка, существует ли пост
if ($landing_post) {
    setup_postdata($landing_post);
    ?>
    <div class="landing-content">
        <h1><?php the_title(); ?></h1>
        <div><?php the_content(); ?></div>
    </div>
    <?php
    wp_reset_postdata();
}
?>

Шаг 4: Тестирование

Теперь, когда вы перейдете на my-site.com/career-finders, вы должны увидеть контент, который вы добавили в ваш пост лендинга. Это позволит редакторам легко управлять содержимым страницы через стандартный интерфейс WordPress.

Заключение

Этот подход позволяет вам создать лендинг для вашего пользовательского типа записи с возможностью редактирования через WP-admin. Вы можете использовать стандартные функции WordPress, чтобы динамически извлекать контент, что также улучшает его управляемость и SEO-оптимизацию за счет использования стандартных механизмов платформы. Обратите внимание на то, что лучше всего использовать пользовательскую таксономию или метаданные для дальнейшего улучшения функциональности вашего лендинга, если это необходимо в будущем.

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

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