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