当前浏览:首页 / WordPress函数 / comments_open()

comments_open( int|WP_Post $post_id = null )

当前文章是否开放评论

comment 评论more...

open


描述

更多类似的主题函数信息,请查看主题开发手册中的条件标签文章。


参数

$post_id

(int|WP_Post) (可选) 文章 ID或WP_Post对象,默认当前文章。

默认值: null


返回

(bool) 如果评论是开放的,则为true。



源码

查看源码 官方文档


更新日志

版本描述
1.5.0开始引入

使用示例

  • 示例1

    只有当我们看到单个文章并且评论对当前文章开放时,才将脚本引入

    /**
     * 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' );
    
  • 示例2

    使用此代码,您可以始终禁用页面上的评论,假设您的主题使用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 );
    
  • 示例3
    // Отключаем комментирование
    add_filter( 'comments_open', '__return_false' );
    
  • 示例4

    使用此代码,您可以在自定义字段“允许评论”设置为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 );