ฉันต้องการปิดความคิดเห็นโดยค่าเริ่มต้นด้วยหน้าและประเภทโพสต์ที่กำหนดเอง
ตอนแรกฉันใช้เงื่อนไขในฟังก์ชั่นแสดงความคิดเห็นเพื่อหลีกเลี่ยงการแสดงบล็อกในหน้าเหล่านี้ แต่ฉันต้องการให้ผู้ใช้สามารถเปิดความคิดเห็นได้ตามต้องการ
ฉันต้องการปิดความคิดเห็นโดยค่าเริ่มต้นด้วยหน้าและประเภทโพสต์ที่กำหนดเอง
ตอนแรกฉันใช้เงื่อนไขในฟังก์ชั่นแสดงความคิดเห็นเพื่อหลีกเลี่ยงการแสดงบล็อกในหน้าเหล่านี้ แต่ฉันต้องการให้ผู้ใช้สามารถเปิดความคิดเห็นได้ตามต้องการ
คำตอบ:
จากสิ่งที่ฉันเข้าใจคุณต้องการตั้งค่าหน้าและบางประเภทโพสต์ที่กำหนดเองให้มีความคิดเห็น 'ปิด' โดยค่าเริ่มต้นในขณะที่โพสต์จะยังคงใช้ตัวเลือกเริ่มต้น (เช่นการแสดงความคิดเห็น 'เปิด') หากเป็นกรณีนี้ฟังก์ชั่นต่อไปนี้จะทำ
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
ตัวเลือก
หวังว่าจะช่วย .... :)
ฉันเขียนปลั๊กอินเพื่อปิดการใช้งานความคิดเห็นในหน้าเว็บเป็นค่าเริ่มต้น http://wordpress.org/extend/plugins/page-comments-off-please/
บางทีนั่นอาจจะช่วยได้?
ตามหัวข้อนี้สิ่งที่คุณร้องขอไม่สามารถทำได้โดยไม่ต้องใช้ปลั๊กอินหรือฟังก์ชั่นที่กำหนดเองเพื่อทำสิ่งนั้นให้สำเร็จ
ฉันขอแนะนำให้ยังคงใช้เงื่อนไขของคุณในการแสดงความคิดเห็น แต่ใช้ตัวเลือกในการจัดเก็บการตั้งค่าตามเงื่อนไขของคุณ จากนั้นคุณสามารถเพิ่มหน้าลงในเมนูการตั้งค่าที่ช่วยให้ผู้ดูแลระบบสามารถเปิดหรือปิดความคิดเห็นได้ตามต้องการ
เกิดขึ้นกับฉันว่าคุณต้องการตั้งค่าเริ่มต้นสำหรับการแสดงความคิดเห็นถึง "ปิด" เป็นการตั้งค่าระดับโลกแทนที่จะตั้งเป็น "ปิด" ในแต่ละครั้งที่คุณสร้างหน้า สิ่งนี้เป็นไปได้
ไปที่การตั้งค่า >> การสนทนาในส่วนผู้ดูแลระบบ WordPress ในส่วนแรก ("การตั้งค่าบทความเริ่มต้น" คุณจะเห็นตัวเลือกที่ชื่อว่า "อนุญาตให้ผู้คนโพสต์ความคิดเห็นในบทความใหม่" ... ยกเลิกการเลือกตัวเลือกนี้
ตอนนี้ตามค่าเริ่มต้นความคิดเห็นจะถูกปิด "สำหรับโพสต์ใหม่หน้าและประเภทโพสต์ที่กำหนดเองทั้งหมด คุณยังสามารถเปลี่ยนความคิดเห็นกลับเป็น "เป็น" ได้โดยการเลือกช่องทำเครื่องหมายที่เหมาะสมในกล่องเมตา "อภิปราย" ในหน้าจอแก้ไขการโพสต์ / หน้าแต่ละหน้า
หากคุณเพียงแค่เพิ่มรหัสนี้ใน functions.php
<?php
add_post_type_support( 'your_custom_post_type', array( 'comments' ) );
?>
ไปที่โพสต์และในตัวเลือกหน้าจอทำเครื่องหมายที่ "การสนทนา" และ "ความคิดเห็น" คุณสามารถเปิด / ปิดการใช้งานความคิดเห็นสำหรับโพสต์ที่กำหนดเองแต่ละประเภท