描述
更多类似的主题函数信息,请查看主题开发手册中的条件标签文章。
参数
- $post_id
-
(int|WP_Post) (可选) 文章 ID或WP_Post对象,默认当前文章。
默认值: null
返回
(bool) 如果评论是开放的,则为true。
源码
更新日志
版本 | 描述 |
---|---|
1.5.0 | 开始引入 |
使用示例
只有当我们看到单个文章并且评论对当前文章开放时,才将脚本引入
/** * Enqueue wpdocs_script if viewing a post with comments enabled. */ function wpdocs_scripts(){ if ( is_single() && comments_open() ) { // wpdocs_script must have been previously registered via wp_register_script() wp_enqueue_script( 'wpdocs_script' ); } } add_action( 'wp_print_scripts', 'wpdocs_scripts' );
使用此代码,您可以始终禁用页面上的评论,假设您的主题使用comments_open()检查评论是否打开
注意:在4.3+中,默认情况下,页面上的评论是禁用的。/** * Disable comments on pages. * * @param bool $open Whether comments should be open. * @param int $post_id Post ID. * @return bool Whether comments should be open. */ function wpdocs_comments_open( $open, $post_id ) { $post = get_post( $post_id ); if ( 'page' == $post->post_type ) $open = false; return $open; } add_filter( 'comments_open', 'wpdocs_comments_open', 10, 2 );
// Отключаем комментирование add_filter( 'comments_open', '__return_false' );
使用此代码,您可以在自定义字段“允许评论”设置为1的文章上启用评论
当您告诉WordPress对超过X天的文章禁用评论,但希望对少数旧文章启用评论时,这会很有帮助。
/** * Enable or disable comments based on custom field Allow Comments. * * @param bool $open Whether comments should be open. * @param int $post_id Post ID. * @return bool Whether comments should be open. */ function wpdocs_comments_open( $open, $post_id ) { $post = get_post( $post_id ); if (get_post_meta($post->ID, 'Allow Comments', true)) { $open = true; } return $open; } add_filter( 'comments_open', 'wpdocs_comments_open', 10, 2 );