問題描述
默認情況下,我想關閉評論頁面和自定義 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 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。