»

关于WordPress评论的三个有用函数

    WordPress  
WordPress插件htaccessCDN的问题建站访客windows主机Apache身份认证cookies访问WP Rocket重定向防盗链网络安全IISwordpress数据库前端网站镜像浏览器网站优化爬虫插件腾讯云加速Wp Super Cache

在应用WordPress评论模板时,经常要用到评论的判断和查询,本文介绍了三个有用的函数,分别为have_comments()、get_comments_number()、comments_number(),从三个函数可以看出其区别和用法。

 

have_comments() 函数

用于确定是否有任何要循环的评论。位于 wp-includes/query.php 文件中。此函数依赖于在主循环(The Loop)中要设置的全局变量 $wp _query

用法:<?php $have_comments = have_comments(); ?>

返回值为布尔型变量:如果当前查询有可用的评论, 则为 true, 否则为 false。

 

注意:在评论模板 comments_template() 被调用之前,此函数将始终返回 "false " 。因此,如果需要在调用 comments_template() 之前检查评论,应改用 get_comments_number() 函数代替。

可使用全局变量 $wp _query 来确定评论是否可用 (通过 have_comments 方法)。

本文禁止住转载。任何形式转载请联系作者(时光在路上 www.timezls.com)。时光在路上保留所有权利

 

举例:基于 Twentyten 主题的 comments.php 模板,评论标题等仅在评论可用时显示。

  1. <?php if ( have_comments() ) : ?>  
  2.     <h3 id="comments-title"><?php  
  3.         printf(  
  4.             _n( 'One Response to %2$s', '%1$s Responses to %2$s', get_comments_number(), 'twentyten' ),  
  5.             number_format_i18n( get_comments_number() ),  
  6.             '<em>' . get_the_title() . '</em>'   
  7.         );  
  8.     ?></h3>  
  9. //[and more, of course...]  
  10. <?php else : //或者,没有评论:
  11.     if ( ! comments_open() ) : ?>  
  12.         <p class="nocomments"><?php _e( 'Comments are closed.', 'twentyten' ); ?></p>  
  13.     <?php endif//结束 ! comments_open() ?>  
  14. <?php endif//结束 have_comments() ?>  

 

本文禁止住转载。任何形式转载请联系作者(时光在路上 www.timezls.com)。时光在路上保留所有权利

get_comments_number() 函数

检索文章中评论、Trackbacks 和 Pingbacks 的总数。与 comments_number () 不同,此函数将数值作为返回值。

用法:<?php $my_var = get_comments_number( $post_id ); ?> 。其中,$post_id 为文章ID(整数/对象)(可选),默认为当前文章 ID。

 

举例:欲使 get_comments_number() 函数像 comments_number() 函数一样工作,可以使用此代码。

  1. $num_comments = get_comments_number(); //get_comments_number 仅返回数值
  2.   
  3. if ( comments_open() ) {  
  4.     if ( $num_comments == 0 ) {  
  5.         $comments = __('No Comments');  
  6.     } elseif ( $num_comments > 1 ) {  
  7.         $comments = $num_comments . __(' Comments');  
  8.     } else {  
  9.         $comments = __('1 Comment');  
  10.     }  
  11.     $write_comments = '<a href="' . get_comments_link() .'">'. $comments.'</a>';  
  12. else {  
  13.     $write_comments =  __('Comments are off for this post.');  
  14. }  

 

本文禁止全文转载。任何形式转载请联系作者(时光在路上 www.timezls.com) Copyright © 2023. All Rights Reserved

comments_number() 函数

用于显示当前文章的评论、Trackbacks、Pingbacks 的总数。该标签必须在 WordPress 主循环(The Loop)中。

如果要查询评论的具体数值,应使用 get_comments_number() 函数。

本文禁止无授权转载 - 时光在路上 www.timezls.com 保留所有权利

 

用法:<?php comments_number( $zero, $one, $more ); ?> 。  其中,$zero 表示没有评论时显示的内容(字符串)。默认为 'No Comments';$one 表示有一条评论时显示的内容(字符串,可选)。默认为'1 Comment';而 $more 则表示评论总数超过 1 时显示的内容(字符串)。用百分号“%” 来表示,默认为 '% Comments'。

 

举例:

根据评论数量显示文本:评论数为0时显示“no responses”,评论数为1时显示“one response”,评论多余1条时(例如42条)显示“42 responses”。

  1. <p>  
  2.   This post currently has  
  3.   <?php comments_number( 'no responses', 'one response', '% responses' ); ?>.  
  4. </p>  

评论部分显示标题:评论区上部显示标题和评论数。

  1. <h3>  
  2. printf( _nx( 'One Comment', '%1$s Comments', get_comments_number(), 'comments title', 'textdomain' ), number_format_i18n( get_comments_number() ) );  
  3. </h3>  

本文禁止全文转载。任何形式转载请联系作者(时光在路上 www.timezls.com) Copyright © 2023. All Rights Reserved

时光在路上扫码阅读、分享
  • 版权声明:该文章由 时光在路上 发表,共 2501字。除非特别标注来源,否则为原创。详见《版权声明》部分。
  • 转载请注明:文章标题和文章链接 - 时光在路上 - 也可直接“复制本文链接” 或 使用右边二维码分享本文 →