Для создания страницы со списком карточек с поиском по тексту в WordPress, вам потребуется использовать несколько элементов: пользовательскую таксономию, пользовательский тип записи, шаблон страницы и функцию поиска.
1. Создание пользовательского типа записи:
- Для начала откройте файл functions.php вашей темы в WordPress и добавьте следующий код:
function create_custom_post_type() { register_post_type('portfolio', [ 'labels' => [ 'name' => 'Портфолио', 'singular_name' => 'Портфолио' ], 'public' => true, 'has_archive' => true, 'supports' => ['title', 'editor', 'thumbnail'], ]); } add_action('init', 'create_custom_post_type');
- Данный код создаст новый пользовательский тип записи с названием "Портфолио". Вы можете изменить название согласно вашим требованиям.
2. Создание пользовательской таксономии:
- Добавьте следующий код в файл functions.php вашей темы:
function create_custom_taxonomy() { register_taxonomy('portfolio_category', ['portfolio'], [ 'labels' => [ 'name' => 'Категории портфолио', 'singular_name' => 'Категория' ], 'public' => true, 'hierarchical' => true, ]); } add_action('init', 'create_custom_taxonomy');
- Этот код создаст новую таксономию с названием "Категории портфолио" для пользовательского типа записи.
3. Создание шаблона страницы:
- Создайте новый файл в папке вашей темы с названием template-portfolio.php и добавьте следующий код:
<?php /* Template Name: Страница портфолио */ ?> <?php get_header(); ?> <div id="primary" class="content-area"> <main id="main" class="site-main" role="main"> <div class="portfolio-search"> <form role="search" method="get" class="search-form" action="<?php echo esc_url(home_url('/')); ?>"> <label> <span class="screen-reader-text"><?php echo _x('Search for:', 'label', 'theme_name'); ?></span> <input type="search" class="search-field" placeholder="<?php echo esc_attr_x('Search...', 'theme_name'); ?>" value="<?php echo get_search_query(); ?>" name="s" /> </label> <input type="submit" class="search-submit" value="<?php echo esc_attr_x('Search', 'theme_name'); ?>" /> </form> </div> <?php $query_args = ['post_type' => 'portfolio']; if (isset($_GET['s']) && !empty($_GET['s'])) { $query_args['s'] = $_GET['s']; } $portfolio_query = new WP_Query($query_args); if ($portfolio_query->have_posts()) : while ($portfolio_query->have_posts()) : $portfolio_query->the_post(); ?> <article id="post-<?php the_ID(); ?>" <?php post_class(); ?>> <header class="entry-header"> <h2 class="entry-title"><?php the_title(); ?></h2> </header> <div class="entry-content"> <?php the_content(); ?> </div> </article> <?php endwhile; wp_reset_postdata(); else : echo 'Ничего не найдено.'; endif; ?> </main> </div> <?php get_footer(); ?>
- В этом шаблоне страницы есть форма поиска и выводится список карточек портфолио, которые соответствуют результатам поиска по тексту.
4. Создание страницы с пользовательским шаблоном:
- В административном интерфейсе WordPress создайте новую страницу и выберите шаблон "Страница портфолио".
- Сохраните страницу и опубликуйте ее.
Теперь у вас есть страница со списком карточек (типа портфолио или объявления) с поиском по тексту в WordPress. Вы можете добавить свои стили для карточек и формы поиска, а также настроить таксономии и пользовательский тип записи согласно вашим требованиям.