Пользовательская тема WordPress – поиск не работает на сообщениях

У меня есть блог WordPress, который использует стороннюю тему под названием «Алфавит» (он больше не доступен и, кажется, был снят создателем: https://themeforest.net/item/alphabet-a-responsive-wordpress-blog- тема / 14258651 )

На этом сайте нет страниц – только сообщения в блогах. Панель поиска работает, если вы не используете ее на фактической странице. Если вы используете его там, вы получите ошибку 404 независимо от вашего поискового запроса. Что-то кажется неправильным с тем, как запрос результата поиска добавляется к URL-адресу.

Например, если вы используете поиск на домашней странице, URL-адрес настраивается следующим образом: http://[my-site.com]/?s=test

Если вы переходите к сообщению и используете поиск там, url настраивается следующим образом: https://[my-site.com]/[sample-post-title]/?s=Culturalism

Если я изменю URL-адрес, чтобы исключить заголовок сообщения, то поисковый запрос будет работать. Я не удивлюсь, если что-то не так с тем, как эта сторонняя тема настраивает поиск, поскольку он не правильно настроен по стандартам WordPress.

Вот файл search.php:

 <!-- Start main_content --> <div class="main_content container"> <!-- Start posts_sidebar --> <div class="posts_sidebar clearfix <?php echo esc_attr($sidebar_position); ?>"> <!-- Start Sidebar --> <?php if (alphabet_get_option('blog_archive_sidebar') == 'Left') { get_sidebar(); } ?> <!-- End Sidebar --> <!--Start Posts Areaa --> <div class="archive_areaa <?php echo esc_attr($fullwidth_position); ?>"> <div class="row"> <!-- post_header --> <div class="post_header"> <h1><?php the_search_query(); ?></h1> <span class="title_divider"></span> </div> <!-- // post_header --> <?php if (have_posts()) : while (have_posts()) : the_post(); ?> <!-- Start as_post --> <article class="as_post"> <div <?php post_class(); ?> id="post-<?php the_ID(); ?>"> <?php $format = get_post_format(); if (false === $format) { $format = 'standard'; } ?> <?php get_template_part('includes/content', $format); ?> </div> </article> <!-- End as_post --> <?php endwhile; ?> <!-- Start pagination_post --> <nav class="pagination_post"> <ul class="pager"> <li><?php previous_posts_link(); ?></li> <li><?php next_posts_link(); ?></li> </ul> </nav> <?php else : ?> <p><?php esc_html_e('Sorry, no posts matched your criteria.', 'alphabet'); ?></p> <?php endif; ?> <!-- End pagination_post --> </div> </div> <!--End Posts Areaa --> <!-- Start Sidebar --> <?php if (alphabet_get_option('blog_archive_sidebar') == 'Right') { get_sidebar(); } ?> <!-- End Sidebar --> </div> <!-- posts_sidebar --> </div> <!-- main_content --> 

И вот код формы поиска (расположенный в header1.php – эта тема имеет несколько файлов header.php, но это тот, который использует блог):

  <!-- Start top_search_ico --> <div id="top_search_ico"> <!-- Start top_search --> <div class="top_search"> <form method="get"><input type="text" placeholder="<?php esc_html_e( 'Search and hit enter...', 'alphabet' );?>" name="s" id="s"></form> <i class="fa fa-search search-desktop"></i> </div> <!-- End top_search --> <!-- Start top_search_toggle --> <div id="top_search_toggle"> <div id="search_toggle_top"> <form method="get"><input type="text" placeholder="<?php esc_html_e( 'Search and hit enter...', 'alphabet' );?>" name="s" id="s"></form> </div> <i class="fa fa-search search-desktop"></i> </div> <!-- End top_search_toggle --> </div> 

В случае, если это может быть полезно, у меня есть постоянные ссылки, отформатированные в блоге как таковые: https://[my-site.com]/sample-post/

Solutions Collecting From Web of "Пользовательская тема WordPress – поиск не работает на сообщениях"

У вашей формы нет action , поэтому он отправляет все текущие URL-адреса. Вы можете указать его на home_url() чтобы он home_url() его независимо от того, на какой странице вы выполняете поиск.

 <form method="get" action="<?php echo esc_url( home_url() ); ?>">