ユーザーは私が既に知っているカスタムURL(プログラミングロジックの一部)にリダイレクトされなければなりません。ユーザを新しいURLにリダイレクトするためにどのWP関数を使うべきか/どんなphpコードを使うべきかを知る必要があります。このコードはfunctions.phpのphp関数内で実行されます - その関数はまず何らかの処理を行い、それからユーザーを新しいURLに送ります。
上記の方法は?
注 - 私はwp_redirectを使ってみましたが、うまくいきません。
これは私が使用しようとしたコードです(それはうまくいきませんでした) -
$redirecturl = get_post_type_archive_link('property');
echo "\n\n Redirect URL for property posts=" + $redirecturl;
wp_redirect( "http://" . $redirecturl + "?post_type=property&search_keyword=" + $search_keyword ;
まず、wp_redirect
がうまくいかないことを信じるのは難しいです。
function wpse101952_redirect() {
global $post;
if( /*SOME CONDITIONAL LOGIC*/ ) { //examples: is_home() or is_single() or is_user_logged_in() or isset($_SESSION['some_var'])
wp_redirect( /*SOME SPECIFIC URL*/ );
exit();
}
}
add_action( 'template_redirect', 'wpse101952_redirect' );
次に、それがあなたのケースにとって正しいアプローチであるかどうかという疑問がありますが、そのためには、もう少しやろうとしていることについて詳しく説明する必要があります。
編集:
関数get_post_type_archive_link()
はあなたに完全なパーマリンクを与えます、あなたはhttp://
と?post_type=property
を加える必要はありません:
wp_redirect( $redirecturl . "?search_keyword=" . $search_keyword );
あなたのコードに似たものを実行すると、エラーログにこの警告が表示されます。
Warning: Cannot modify header information - headers already sent by (output started at /xxx/wordpress/wp-content/themes/balance/functions.php:4) in /xxx/wordpress/wp-includes/pluggable.php on line 876
これを使ってテストしたとき:
$redirecturl = 'google.com';
wp_redirect( 'http://' . $redirecturl );
exit;
すべてうまくいくので、試してみるとよいでしょう。
$redirecturl = get_post_type_archive_link( 'property' );
wp_redirect( 'http://' . $redirecturl . '?post_type=property&search_keyword=' . $search_keyword );
exit;
exit
コードは 関数リファレンス で推奨されています。