Создание страницы результатов поиска из пользовательского типа записи в плагине?

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

У меня есть система форума, где я создал пользовательский тип записи, и я хотел бы иметь систему поиска по темам, но я не знаю, какой должна быть структура, например, как будет выглядеть файл и действие формы поиска.

Я нашел ответ здесь, но его рассматривают так, как будто я хотел пользовательский тип записи для темы, а в моем случае я создал его как плагин, кто-нибудь мог бы подсказать, как я могу создать поиск в рамках пользовательского типа записи, но который находится внутри плагина?

Как создать пользовательский поиск для пользовательского типа записи?

Вам следует попробовать это в вашем поиске


global $query_string;

wp_parse_str($query_string, $search_query);
//добавить тип записи.
$post_type = array('post_type'=>'your-custom-post-type');
$combine_search = array_merge($search_query,$post_type);

$search = new WP_Query($combine_search);

.

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

Для создания страницы результатов поиска для индивидуального типа записей в плагине WordPress, который вы разработали для форума, существует несколько ключевых этапов. Мы будем использовать стандартный функционал WordPress организовать поиск, но с некоторыми доработками для работы с пользовательским типом записей.

Шаг 1: Создание поисковой формы

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

<form role="search" method="get" id="searchform" action="<?php echo esc_url(home_url('/')); ?>">
    <div>
        <label class="screen-reader-text" for="s"><?php _e('Search:', 'textdomain'); ?></label>
        <input type="text" value="<?php echo get_search_query(); ?>" name="s" id="s" placeholder="<?php esc_attr_e('Поиск тем...', 'textdomain'); ?>" />
        <input type="hidden" name="post_type" value="your-custom-post-type" />
        <input type="submit" id="searchsubmit" value="<?php esc_attr_e('Искать', 'textdomain'); ?>" />
    </div>
</form>

В этом случае мы используем стандартный URL для поиска, добавляя параметр post_type, чтобы указать, что вы хотите искать только в вашем индивидуальном типе записей.

Шаг 2: Обработка поискового запроса

Затем необходимо обработать запрос, чтобы учитывать ваш кастомный тип записи. Мы можем использовать pre_get_posts хук, чтобы изменить объект запроса перед выполнением.

add_action('pre_get_posts', 'custom_search_query');

function custom_search_query($query) {
    // Проверка, что это основной запрос и есть параметр поискового запроса
    if ($query->is_search && !is_admin()) {
        $query->set('post_type', 'your-custom-post-type');
    }
    return $query;
}

Этот код позволяет убедиться, что при выполнении поиска будут учитываться только записи вашего индивидуального типа.

Шаг 3: Отображение результатов поиска

Создайте шаблон для отображения результатов поискового запроса, например, search.php в вашем плагине или теме. Например:

<?php get_header(); ?>

<div id="content">
    <h1><?php printf(__('Результаты поиска для: %s', 'textdomain'), get_search_query()); ?></h1>

    <?php if (have_posts()) : ?>
        <ul>
            <?php while (have_posts()) : the_post(); ?>
                <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
            <?php endwhile; ?>
        </ul>
    <?php else : ?>
        <p><?php _e('Извините, ничего не найдено.', 'textdomain'); ?></p>
    <?php endif; ?>
</div>

<?php get_footer(); ?>

Шаг 4: SEO-оптимизация

Чтобы повысить вашу SEO-оптимизацию:

  1. Убедитесь, что заголовки ваших страниц содержат ключевые слова, связанные с вопросами на вашем форуме.
  2. Используйте мета-теги и описания, соответствующие содержимому.
  3. Убедитесь, что ссылки на отдельные топики хорошо структурированы и содержат ключевые слова.

Заключение

С помощью вышеописанных шагов вы сможете создать эффективную поисковую систему для вашего индивидуального типа записей в плагине WordPress. Обязательно тестируйте функциональность на разных устройствах и браузерах, чтобы убедиться, что ваш поиск работает корректно. Удачи в разработке!

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

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