WordPress判断评论是否打开函数comments_open()的介绍及如何使用

雨越下越大,往远处看去,好象一块薄雾遮住了视线,灰蒙蒙一片,树啊,房子啊,什么也看不清了。

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()的介绍及如何使用到此结束。美丽的蓝图,落在懒汉手里,也可是是一页废纸。小编再次感谢大家对我们的支持!

您可能有感兴趣的文章
WordPress站点Gravatar头像前后台不显示的如何解决办法

WordPress做公司官网好吗?会不会显得档次很低?

WordPress主题需要支持https吗?WordPress站点如何如何实现https?

WordPress站点的页面/标签/分类URL地址如何添加.html?

WordPress站点更换了域名后数据库应该如何操作替换新旧域名?