2012-12-11 1 views
1

나는이 문제를 연구했지만 아직도 내가 연구하고있는 테마에서 검색 기능이 작동하지 않는 이유를 알 수 없다. 아래는 내 search.php와 searchform.php 파일에 대한 코드입니다. 검색 파일은 상용구없는 빈 WordPress 테마에서 거의 수정되지 않았습니다. 아무것도 검색 할 때 404 오류가 반환됩니다. 나는 검색의 404를 반환 연구하고 여전히 해결책을 찾을 수 없습니다. 불어 내 코드, 어떤 도움을 크게 주시면 감사하겠습니다.WordPress Search 문제

searchform.php ----------------------------------

<form action="<?php bloginfo('siteurl'); ?>" id="searchform" method="get"> 
     <label for="search"><object data='<?php bloginfo('template_directory');? >/images/input-search.svg'> 
     <img src='<?php bloginfo('template_directory');?>/images/input-search.png'> 
     </object></label> 
     <input type="search" name="search" /> 
</form> 

검색 할 수 있습니다. PHP ---------------------------------------

<?php get_header(); ?> 

<?php if (have_posts()) : ?> 

    <h2>Search Results</h2> 

    <?php include (TEMPLATEPATH . '/inc/nav.php'); ?> 

    <?php while (have_posts()) : the_post(); ?> 

     <div <?php post_class() ?> id="post-<?php the_ID(); ?>"> 

      <h2><?php the_title(); ?></h2> 

      <?php include (TEMPLATEPATH . '/inc/meta.php'); ?> 

      <div class="entry"> 

       <?php the_excerpt(); ?> 

      </div> 

     </div> 

    <?php endwhile; ?> 

    <?php include (TEMPLATEPATH . '/inc/nav.php'); ?> 

<?php else : ?> 

    <h2>No posts found.</h2> 

<?php endif; ?> 

답변

0

다음과 같이 functions.php 파일에서 검색 양식을 활성화해야합니다.

// ENABLES SEARCH FORM STUFF 
function my_search_form($form) { 

$form = '<form role="search" method="get" id="searchform" action="' . home_url('/') . '" > 
<div><label class="screen-reader-text" for="s">' . __('Search for:') . '</label> 
<input type="text" value="' . get_search_query() . '" name="s" id="s" /> 
<input type="submit" id="searchsubmit" value="'. esc_attr__('Search') .'" /> 
</div> 
</form>'; 

return $form; 

}

// ENABLES SEARCH FORM 
add_filter('get_search_form', 'my_search_form'); 

이 내 테마에서 사용하는 코드입니다. 그런 다음이 내 검색 형태로 부를 것이다 :이 그것을 반환 이유를 잘 내가 알아 낸

<form method="get" id="searchform" action="<?php echo esc_url(home_url('/')); ?>"> 
    <label for="s" class="assistive-text"><?php _e('Search'); ?></label> 
    <input type="text" class="field" name="s" id="s" placeholder="<?php esc_attr_e('Search'); ?>" /> 
    <input type="submit" class="submit" name="submit" id="searchsubmit" value="<?php esc_attr_e('Search'); ?>" /> 
    </form> 
+0

내 searchform.php입니다

<?php get_search_form(); ?> 

404 - 나는 실제로 한 내 추가 양식 태그에 싸여있어 my HTML과 my searchform.php 파일에 form 태그가 있습니다. 그러나 검색 결과는 ../?search=xxx를 쿼리하지만 데이터베이스의 모든 게시물을 반환합니다. 왜 그런가? –

+0

searchform.php에서 action = " '을 제거하고 action ="$ _ SERVER ['PHP_SELF '] "을 입력하십시오. 작동하는지 알려주십시오. –

+0

그것을하지 않는 것 같았다. 다시 404로 돌아갔습니다. –