我正在从事电视节目和电影主题工作。我创建了新的页面模板来显示所有电影和花药页面模板来显示电视节目(都是自定义帖子类型)。 我的搜索表单(如果有人从索引页面使用它)工作正常并在 search.php 中显示结果 但如果您在电影页面或其他页面,搜索表单会将您带到索引页面(404 页面尚未创建)
我在主标题中使用此代码
<?php get_search_form();?>
这是我的searchform.php
<form class="d-flex" role="search" methode="get" action="<?php echo esc_url( home_url( '/' ) ) ?>">
<input class="form-control" type="text" name="s" id="search" placeholder="<?php echo ('search in site'); ?>"
aria-label="<?php echo ('search'); ?>" value="<?php echo get_search_query() ?>">
<button class="btn btn-outline-success search-btn" type="submit"><i class="fa-solid fa-magnifying-glass"></i></button>
</form>
这是我的搜索.php
<?php get_header();
$search = strtolower(get_search_query());
?>
<?php
$args = array(
'taxonomy' => array( 'series' ), // taxonomy name
'hide_empty' => true,
'fields' => 'all',
);
$terms = get_terms( $args );
$count = count($terms);
if($count > 0){
foreach ($terms as $term) { ?>
get_template_part('/assests/series-temp');
<?php } }
//code above for returning the custom term of each series post with different loop
$args= array(
'post_type'=> array('movies'),
'post_status' => 'publish',
'posts_per_page' => -1,
's' => $search
);
$titleQuery = new WP_Query( $args );
if ( $titleQuery->have_posts() ) {
while ( $titleQuery->have_posts() ){ $titleQuery->the_post(); ?>
<?php
if ( get_post_type( get_the_ID() ) == 'movies' ) {
get_template_part('/assests/movie-temp');
} ?>
<?php } wp_reset_postdata(); } ?>
<?php get_footer(); ?>
我的错误在哪里?请帮忙
问题一: 这是他们的一个拼写错误,在“方法”的地方写一个“方法” 问题2: 另外还要注意表单操作中的正确 URL。如果您在电影或电视节目页面上,您希望搜索保留在网站的该部分内。