Вопрос или проблема
Я создал шаблон страницы и пользовательский тип записи ‘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!