問題描述

默認情況下,我想關閉評論頁面和自定義 post-types

最初,我只是在評論顯示功能中使用條件來避免在這些頁面上顯示該塊,但是我需要用户才能根據需要重新啓動註釋。

最佳解決方案

根據我的理解,您希望設置頁面和一些自定義帖子類型,以便在默認情況下具有註釋’off’,而帖子仍將使用默認選項 (即註釋’on’) 。如果是這種情況,以下功能將會這樣做。

function default_comments_off( $data ) {
    if( $data['post_type'] == 'page' && $data['post_status'] == 'auto-draft' ) {
        $data['comment_status'] = 0;
    }

    return $data;
}
add_filter( 'wp_insert_post_data', 'default_comments_off' );

次佳解決方案

當您創建新的帖子 (自定義類型或常規) 時,WordPress 會調用 get_default_post_to_edit,然後設置新帖子將具有的默認值。

此功能提供了一些過濾器鈎子來更改默認標題,內容和摘錄,但不幸的是沒有其他的,但是每個過濾器都將完整的 $post 對象傳遞給回調,基本上這意味着可以重新定義幾個屬性 (或僅一個如果我們喜歡)

這應該適用於您,只需將代碼應用於應用的帖子類型添加到開關中的情況 (電影和頁面是示例)..

function my_default_content( $post_content, $post ) {
    if( $post->post_type )
    switch( $post->post_type ) {
        case 'page':
        case 'movie':
            $post->comment_status = 'closed';
        break;
    }
    return $post_content;
}
add_filter( 'default_content', 'my_default_content', 10, 2 );

代碼已經在 WP 3.0.1 上進行了測試,並具有特定的禁用註釋類型的意圖,同時讓其他人從 default_comment_status 選項繼承默認狀態。

希望有幫助…. 🙂

參考文獻

注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。