web-dev-qa-db-ja.com

URLに基​​づく404リダイレクト

私はこのようなリンクがあります:

https://www.example.com/bh-job/38/?title=digital-marketing-intelligence-expert

ページを閲覧したときに、404ページがリダイレクトされました。ページが存在しないためです。ページは存在しませんが、代わりに https://www.example.com/jobs にリダイレクトしたいです。

私はまたこのような別のページがあります:

https://www.example.com/bh-job/121/?title=sem-manager

これは実際のページであり、見つけることができます。

そのため、404ページから/ jobsページにリダイレクトしたときに、https://に移動する必要があります。 www.example.com/bh-job/で、見つかりません。どうすればいいの?

1
nielsv

私はwpフックを使用します。これはリクエストが解析され問い合わせられた直後に起動します。

function wpse_199869_wp( $wp ) {
    if ( ! is_admin() && is_404() && preg_match( '/^bh-job/', $wp->request ) ) {
        wp_redirect( home_url( user_trailingslashit( 'jobs' ) ) );
        exit;
    }
}

add_action( 'wp', 'wpse_199869_wp' );

404であることを確認して、リクエスト(URIパス)がbh-jobで始まるかどうかを確認します - もしそうなら、/jobsにリダイレクトします(user_trailingslashit関数はパーマリンク構造に合うように末尾のスラッシュを追加または削除します)。

1
TheDeadMedic