雨越下越大,往远处看去,好象一块薄雾遮住了视线,灰蒙蒙一片,树啊,房子啊,什么也看不清了。
WordPress 自带评论功能而且可以在后台打开/关闭评论,有时候我们需要根据评论是否打开来决定显示一些信息,比如评论打开则显示评论框,评论关闭则不显示评论框等。那么我们应该如何判断当前文章是否打开(允许)评论呢?这个时候就需要用到 comments_open()函数了,今天就重点跟大家介绍一下 comments_open()函数。
comments_open()函数介绍
查询当前帖子是否打开(允许)评论。
comments_open( int|WP_Post $post_id = null )
参数:
$post_id(int|WP_Post):(可选)Post ID 或 WP_Post 对象,默认为当前文章,默认值:null。
结果:
(布尔)如果打开(允许)评论则返回 true。
函数所在文件:wp-includes/comment-template.php
function comments_open( $post_id = null ) { $_post = get_post( $post_id ); $post_id = $_post ? $_post->ID : 0; $open = ( 'open' === $_post->comment_status ); return apply_filters( 'comments_open', $open, $post_id ); }
comments_open()函数使用示例
示例:仅当我们看到单个帖子并且当前帖子已打开评论时才使脚本入队
/** * 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' );
示例:为自定义字段“Allow Comments”的文章打开评论
当我们设置了 WordPress 禁用 X 天以上的帖子但希望部分文章(添加有自定义字段 Allow Comments 的文章)还继续启用评论时的代码。
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 );
以上内容整理自@WordPress - comments_open()
本文WordPress判断评论是否打开函数comments_open()的介绍及如何使用到此结束。美丽的蓝图,落在懒汉手里,也可是是一页废纸。小编再次感谢大家对我们的支持!