2017-03-15 22 views
3

私はホームページを持っています。私は家に検索機能を統合しました。その作品は大丈夫です。私が検索したとき、URLはhttp://localhost/site-name/?s=searchTermと表示されます。しかし、私はウェブサイトの内側のページにアクセスし、私は検索を持っているとき、URL表示はhttp://localhost/site-name/pageName/?s=searchTermです。どのようにリダイレクトするのですかhttp://localhost/site-name/?s=searchTermデフォルトの検索URLにリダイレクトするURL

答えて

1

以下のように検索フォームを設定します。あなたは、検索フォームのアクションの下に、現在のページのURLを使用している可能性がありますWordPressのホーム・ページのURL esc_url(home_url('/'));

<form method="get" action="<?php echo esc_url(home_url('/')); ?>" class="" id=""> 
+0

が機能していないあなたのfunctions.php内のブロックの上に配置する必要があります。 urlの中で<は検索後に表示されます。ページがデフォルトの検索にリダイレクトされていません。 – gt06

+0

@ gt06はあなたのコードを共有します。私はあなたを助けるでしょう –

+0

このコードはlocalhost/site-name/pageNameに入れました。 – gt06

0

に等しいアクションを追加します。単にアクションを変更してホームページのURLにポイントするだけです。

action="<?php echo esc_url(home_url('/')); ?>" 

この機能は、アクションURLをサイトのホームディレクトリに置き換えます。

+1

'

'このコードはlocalhost/site-name/pageNameに入れました。 – gt06

+0

このURLはhttps://developer.wordpress.org/reference/functions/get_search_form/で非常にうまく説明してくれます。 –

+0

私はaction = "/ site-name"で使っています。デフォルトのページを検索するようにリダイレクトされました。 – gt06

1

これはからのデフォルトのワードプレス検索です。それはあなたのために働くはずです。

<form role="search" method="get" id="searchform" class="searchform" action="<?php echo esc_url(home_url('/')); ?>"> 
    <div> 
     <label class="screen-reader-text" for="s"><?php _x('Search for:', 'label'); ?></label> 
     <input type="text" value="<?php echo get_search_query(); ?>" name="s" id="s" /> 
     <input type="submit" id="searchsubmit" value="<?php echo esc_attr_x('Search', 'submit button'); ?>" /> 
    </div> 
</form> 

ただし、それが動作しない場合。もう一つの解決策はこれです。

function fb_change_search_url_rewrite() 
{ 
    if (is_search() && ! empty($_GET['s'])) 
    { 
     wp_redirect(home_url("/") . urlencode(get_query_var('s'))); 
     exit(); 
    } 
} 
add_action('template_redirect', 'fb_change_search_url_rewrite'); 

あなたは

関連する問題