カスタム投稿タイプではhas_archive
をfalse
に設定しました。しかし、CPTページの先頭には、まだ次のようなフィードへのリンクがあります。
<link … title="Page Title | Comments Feed" href="domain/cpt/slug/feed/" />
フィードが存在しません - リンクは404エラーを生成します。通常の投稿のコメントフィードにのみ影響するフィルタfeed_links_show_comments_feed
を使用してリンクを削除しようとしました。
add_filter( 'feed_links_show_comments_feed', '__return_false' );
…cptコメントフィードはまだありました。
また、allフィードを削除しようとしました - これもすべてのフィードで動作しましたが、削除したいフィードも同様でした。
remove_action( 'wp_head', 'feed_links', 2 );
しかし、もし私がhas_archive
をtrue
に設定するならば、リンクは実際に有効なコメントのRSSフィードにつながるでしょう - それは私が基本的に気にしないであろう。しかし、私はhas_archive
をtrue
に設定することはできません。なぜなら私はいくつかのカスタムページのためのベーススラッグを必要とし、アーカイブページをスラッグのURLに表示したくないからです。
誰かが私を正しい方向に向けることができるといいのですが?すべてのポインターは歓迎します。ありがとうございました!
次のコマンドは投稿のコメントフィードを非表示にします(WP 4.4以降が必要です)が、カスタムページにはコメントが無効になっていてもコメントフィードが表示されたままになります。
add_filter( 'feed_links_show_comments_feed', '__return_false' );
これを解決するために、私はこの追加コードも追加しなければなりませんでした:
function remove_comments_rss( $for_comments ) {
return;
}
add_filter('post_comments_feed_link','remove_comments_rss');
カスタム投稿タイプのコメントフィードは、 comments_open
フィルタを使用して、特定の投稿タイプに対してコメントを閉じるようにWordPressに指示することで削除できます。
function close_comments( $open, $post_id ) {
if ( 'cpt' == get_post_type( $post_id ) ) {
$open = false;
}
return $open;
}
add_filter( 'comments_open', 'close_comments', 10, 2 );
必ず 'cpt'をあなたの投稿タイプ名に置き換えてください。