カテゴリアーカイブページがあります。 http://mysite.com/news
カテゴリ 'news-article'からのアイテムのアーカイブを表示します
http://mysite.com/category/news-article に http://mysite.com/news のリクエストをリダイレクトしたい(前者が直接アクセスできない)。
ベストプラクティスはありますか?私の.htaccessファイルに301 Redirectを入れるべきですか(または同じようにするためにプラグインを使うべきですか?)。
それともwp_safe_redirect
を使うべきですか?もしそうなら、どのアクションフックを使うべきですか?のように:
add_action( 'WHICH_ACTION_HOOK??', 'adam_redirect_news' );
function adam_redirect_news () {
if ( is_category( 'news-article' ) ) {
wp_safe_redirect( 'http://mysite.com/news' );
exit;
}
}
私は何らかの理由でわからない、add_filterはエラーを引き起こしました。私は以下のものを使いました:
function my_page_template_redirect()
{
if ( is_category( 'news-articles' ) ) {
$url = site_url( '/news' );
wp_safe_redirect( $url, 301 );
exit();
}
}
add_action( 'template_redirect', 'my_page_template_redirect' );
上の@Laykaのおかげで、私はコードを少し微調整しました、そして、これは私が必要としたことをします。
それはおそらく同じ時期に呼ばれるどんなフィルタでもありえます - 確かではありません。
/**
* Redirect 'category/news-articles' category to 'News page' ( at http://www.example.com/news' )
*
*/
add_filter('template_redirect', 'template_redirect_filter', 10, 3);
function template_redirect_filter( $url, $term, $taxonomy ) {
if ( is_category( 'news-articles' ) ) {
$url = site_url( '/news' );
wp_safe_redirect( $url, 301 );
exit;
}
return $url;
}
function template_category_template_redirect()
{
if( is_category())
{
wp_redirect( site_url() );
die;
}
}
add_action( 'template_redirect','template_category_template_redirect' );