私の「カスタム投稿タイプのアーカイブページ」がPageを指すようにしてください。
状況は以下のとおりです。
私はWordpressにパーマリンクhttp://myurl.com/galleries
を持つPage
を持っています。このページはカスタム投稿タイプ= vmgallery
の投稿のリストを表示します。このページのカスタムロジックはうまくいっています。
別の観点から見ると、このページは特定のカスタム投稿タイプvmgalleryのすべての投稿を表示するため、「カスタム投稿タイプアーカイブページ」のように機能します。現在、ユーザーが http://myurl.com/vmgallery/ wordpressにアクセスしてアーカイブページ(archive.php)を読み込んでいる場合は、代わりにhttp://myurl.com/galleries
ページを読み込んでください。
これを達成する方法?
ここには複数の選択肢があります。
1.投稿タイプ登録時に投稿タイプアーカイブスラッグを定義する
'has_archive' => 'galleries'
を設定することで、カスタム投稿タイプアーカイブスラッグを定義できます。 ドキュメンテーション をチェックしてください。それからあなたはあなたのページ「ギャラリー」を削除してからarchive-post_type.php
を追加してカスタマイズすることができます
2.投稿タイプのデフォルトアーカイブを無効にする
'has_archive' => false
を設定してアーカイブを無効にし、投稿タイプアーカイブのページを保持します。
3.アーカイブ要求をあなたのページにリダイレクトする
デフォルトのアーカイブリクエストを自分のページに永久的にリダイレクトできます。
function archive_to_custom_archive() {
if( is_post_type_archive( 'post_slug' ) ) {
wp_redirect( home_url( '/galleries/' ), 301 );
exit();
}
}
add_action( 'template_redirect', 'archive_to_custom_archive' );
私は最初の方法がいいと言うでしょう!
これは、単一の投稿に影響を与えずにアーカイブページのリンクを削除するためのコードです。
function dg_custom_post_type_args( $args, $post_type ) {
if ( $post_type === "custom post type" ) {
$args['rewrite'] = array(
'with_front' => false,
'slug' => 'slug here'
);
}
return $args;
}
add_filter( 'register_post_type_args', 'dg_custom_post_type_args', 20, 2 );