返回介绍

get_page_of_comment()

发布于 2017-09-10 23:43:22 字数 4107 浏览 1070 评论 0 收藏 0

get_page_of_comment( int $comment_ID,  array $args = array() )

Calculate what page number a comment will appear on for comment paging.


description


参数

$comment_ID

(int) (Required) Comment ID.

$args

(array) (Optional) Array of optional arguments.

  • 'type'
    (string) Limit paginated comments to those matching a given type. Accepts 'comment', 'trackback', 'pingback', 'pings' (trackbacks and pingbacks), or 'all'. Default is 'all'.
  • 'per_page'
    (int) Per-page count to use when calculating pagination. Defaults to the value of the 'comments_per_page' option.
  • 'max_depth'
    (int|string) If greater than 1, comment page will be determined for the top-level parent of $comment_ID. Defaults to the value of the 'thread_comments_depth' option.

Default value: array()


返回值

(int|null) Comment page number or null on error.


源代码

File: wp-includes/comment.php

function get_page_of_comment( $comment_ID, $args = array() ) {
	global $wpdb;

	$page = null;

	if ( !$comment = get_comment( $comment_ID ) )
		return;

	$defaults = array( 'type' => 'all', 'page' => '', 'per_page' => '', 'max_depth' => '' );
	$args = wp_parse_args( $args, $defaults );
	$original_args = $args;

	// Order of precedence: 1. `$args['per_page']`, 2. 'comments_per_page' query_var, 3. 'comments_per_page' option.
	if ( get_option( 'page_comments' ) ) {
		if ( '' === $args['per_page'] ) {
			$args['per_page'] = get_query_var( 'comments_per_page' );
		}

		if ( '' === $args['per_page'] ) {
			$args['per_page'] = get_option( 'comments_per_page' );
		}
	}

	if ( empty($args['per_page']) ) {
		$args['per_page'] = 0;
		$args['page'] = 0;
	}

	if ( $args['per_page'] < 1 ) {
		$page = 1;
	}

	if ( null === $page ) {
		if ( '' === $args['max_depth'] ) {
			if ( get_option('thread_comments') )
				$args['max_depth'] = get_option('thread_comments_depth');
			else
				$args['max_depth'] = -1;
		}

		// Find this comment's top level parent if threading is enabled
		if ( $args['max_depth'] > 1 && 0 != $comment->comment_parent )
			return get_page_of_comment( $comment->comment_parent, $args );

		$comment_args = array(
			'type'       => $args['type'],
			'post_id'    => $comment->comment_post_ID,
			'fields'     => 'ids',
			'count'      => true,
			'status'     => 'approve',
			'parent'     => 0,
			'date_query' => array(
				array(
					'column' => "$wpdb->comments.comment_date_gmt",
					'before' => $comment->comment_date_gmt,
				)
			),
		);

		$comment_query = new WP_Comment_Query();
		$older_comment_count = $comment_query->query( $comment_args );

		// No older comments? Then it's page

更新日志

Versiondescription
2.7.0Introduced.

相关函数

Uses

  • wp-includes/comment.php: get_page_of_comment
  • wp-includes/class-wp-comment-query.php: WP_Comment_Query::__construct()
  • wp-includes/query.php: get_query_var()
  • wp-includes/functions.php: wp_parse_args()
  • wp-includes/plugin.php: apply_filters()
  • wp-includes/option.php: get_option()
  • wp-includes/comment.php: get_page_of_comment()
  • wp-includes/comment.php: get_comment()
  • Show 3 more uses Hide more uses

Used By

  • wp-includes/comment-template.php: get_comment_link()
  • wp-includes/comment.php: get_page_of_comment()

User Contributed Notes

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文