Отображение пользовательских записей на странице

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

Я создал шаблон страницы и пользовательский тип записи ‘pa’, который я хочу отобразить на шаблоне страницы. У меня есть созданный шаблон, также я сделал archive-pa.php, single-pa.php
Мой шаблон: page-pa.php содержит следующее:

<?php
/*
 Название шаблона: Личные ассистенты
 */
get_header(); ?>

<div id="primary" class="content-area">
    <main id="main" class="site-main" role="main">

        <?php $loop = new WP_Query( array( 'post_type' => 'pa', 'posts_per_page' => 6 ) ); ?>
<?php while ( $loop->have_posts() ) : $loop->the_post(); ?>

что-то здесь

<?php endwhile; wp_reset_query(); ?>

    </main><!-- #main -->
</div><!-- #primary -->

<?php
get_sidebar();
get_footer();

Это покажет только тот текст, который я помещу вместо ‘что-то здесь’. Поскольку я новичок в этом, у меня нет идей, как мне отобразить реальные записи; мне нужно больше PHP-запросов здесь, чтобы отображать записи так, как это делал бы обычный блог? Я нашел get_ запросы, но не знаю, как их построить – единственное, что я могу придумать, это немного хак, где я использую постоянную ссылку как элемент пользовательского меню, но я также хочу создать пользовательский поиск и боковую панель категорий. Любая помощь будет очень признательна!

Вы можете найти информацию о цикле здесь и здесь, внутри цикла доступен объект post, вы можете получить данные post там, включая контент, заголовок и т.д. Пример:

<?php while ( $loop->have_posts() ) : $loop->the_post(); ?>

<?php

//что-то здесь
the_title();
the_time();
the_content();

?>

<?php endwhile; wp_reset_query(); ?>

Просто поместите все, что хотите, как в обычном посте WordPress, или вы можете скопировать из цикла index.php

    get_header(); ?>

<div id="primary" class="content-area">
    <main id="main" class="site-main" role="main">

        <?php $loop = new WP_Query( array( 'post_type' => 'pa', 'posts_per_page' => 6 ) ); ?>
<?php while ( $loop->have_posts() ) : $loop->the_post(); ?>

что-то здесь
<?php 
$post->ID;
get_the_title();
get_permalink();
?>
<?php endwhile; wp_reset_query(); ?>

    </main><!-- #main -->
</div><!-- #primary -->

Это просто пример того, как вы можете это использовать

Теперь, когда вы проходите через свои записи, вам нужно использовать Шаблонные Теги WordPress, которые отображают на вашем устройстве такие вещи, как заголовок записи, изображение, отрывок, автор, дата публикации и многое другое. Эти Шаблонные Теги будут написаны на PHP. Их легко понять и использовать. Вот статью-введение: https://www.wpbeginner.com/glossary/template-tag/

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

Отображение пользовательских записей на странице в WordPress

Создание кастомного типа записи и отображение его на специально созданной странице – это незаменимый навык для разработчиков WordPress. Ваша задача заключается в том, чтобы настроить шаблон страницы для отображения записей вашего пользовательского типа записи ‘pa’. Рассмотрим это пошагово.

1. Создание кастомного типа записи

Убедитесь, что ваш кастомный тип записи ‘pa’ зарегистрирован правильно. Обычно это делается в функции functions.php вашей темы. Если вы еще не сделали этого, добавьте следующий код:

function create_post_type() {
    register_post_type('pa',
        array(
            'labels' => array(
                'name' => __('Personal Assistants'),
                'singular_name' => __('Personal Assistant'),
            ),
            'public' => true,
            'has_archive' => true,
            'rewrite' => array('slug' => 'personal-assistants'),
            'supports' => array('title', 'editor', 'excerpt', 'thumbnail'),
        )
    );
}
add_action('init', 'create_post_type');

Этот код создаст новый кастомный тип записи с необходимыми возможностями.

2. Шаблон страницы page-pa.php

Ваш шаблон страницы выглядит хорошо, но для отображения записей вам нужно использовать WordPress-шаблонные теги, которые позволят выводить информацию о каждой записи. Измените секцию "stuff here" в вашем цикле while на следующий код:

<?php while ($loop->have_posts()) : $loop->the_post(); ?>
    <article>
        <h2><?php the_title(); ?></h2>
        <div class="entry-meta">
            <span class="post-date"><?php the_time('F j, Y'); ?></span>
            <span class="post-author"><?php echo 'Автор: ' . get_the_author(); ?></span>
        </div>
        <div class="entry-content">
            <?php the_excerpt(); // Выводит краткое содержание ?>
            <a href="<?php the_permalink(); ?>">Читать далее</a>
        </div>
    </article>
<?php endwhile; wp_reset_postdata(); ?>

3. Реализация боковой панели для поиска и категорий

Для создания боковой панели с поиском и фильтрацией по категориям вам нужно будет добавить соответствующие виджеты в sidebar.php вашей темы. Если у вас еще нет боковой панели, создайте файл sidebar.php:

<aside id="secondary" class="widget-area">
    <h2 class="sidebar-title">Поиск</h2>
    <?php get_search_form(); ?>

    <h2 class="sidebar-title">Категории</h2>
    <ul>
        <?php wp_list_categories(array('taxonomy' => 'category', 'title_li' => '')); ?>
    </ul>
</aside>

4. Оптимизация для SEO

Чтобы улучшить SEO, позаботьтесь о том, чтобы ваши заголовки, метаописания и URL-адреса были оптимизированы. Это можно сделать с помощью плагинов, таких как Yoast SEO. Также используйте структурированные данные для повышения видимости в поисковых системах.

5. Заключение

В результате вы должны получить страницу, которая отображает записи пользовательского типа ‘pa’ с возможностью навигации и поиска. Настройте стили с помощью CSS для улучшения пользовательского опыта.

Теперь вы готовы адаптировать и расширять функциональность. Удачи в разработке вашего проектa!

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

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