Как создать страницу со списком карточек (типа портфолио или обяъявления) с поиском по тексту в вордпресс?

Для создания страницы со списком карточек с поиском по тексту в 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. Вы можете добавить свои стили для карточек и формы поиска, а также настроить таксономии и пользовательский тип записи согласно вашим требованиям.