get_comments_number () vs. get_post_field ('comment_count', ID)

Когда я хочу показать количество комментариев, которые есть в сообщении, – и я вхожу в цикл – какую функцию рекомендуется использовать?

get_post_field( 'comment_count', get_the_ID() ) 

или

 get_comments_number() 

Это функция get_post_field :

 /** * Retrieve data from a post field based on Post ID. * * Examples of the post field will be, 'post_type', 'post_status', 'post_content', * etc and based off of the post object property or key names. * * The context values are based off of the taxonomy filter functions and * supported values are found within those functions. * * @since 2.3.0 * * @see sanitize_post_field() * * @param string $field Post field name. * @param int|WP_Post $post Post ID or post object. * @param string $context Optional. How to filter the field. Accepts 'raw', 'edit', 'db', * or 'display'. Default 'display'. * @return string The value of the post field on success, empty string on failure. */ function get_post_field( $field, $post, $context = 'display' ) { $post = get_post( $post ); if ( !$post ) return ''; if ( !isset($post->$field) ) return ''; return sanitize_post_field($field, $post->$field, $post->ID, $context); } 

И этот id get_comments_number :

  /** * Retrieve the amount of comments a post has. * * @since 1.5.0 * * @param int|WP_Post $post_id Optional. Post ID or WP_Post object. Default is global $post. * @return int The number of comments a post has. */ function get_comments_number( $post_id = 0 ) { $post = get_post( $post_id ); if ( ! $post ) { $count = 0; } else { $count = $post->comment_count; $post_id = $post->ID; } /** * Filter the returned comment count for a post. * * @since 1.5.0 * * @param int $count Number of comments a post has. * @param int $post_id Post ID. */ return apply_filters( 'get_comments_number', $count, $post_id ); } 

Я могу сказать, что у них есть различия, но я не понимаю, какой из них лучше (если вообще. Может быть, они оба в порядке).

Они почти одинаковы. Вы действительно не можете сказать, что лучше. У одного есть конкретная, а другая – более общая цель – вот и все. Лично я склонен идти с конкретными, но это только личное предпочтение. В общем, просто выберите тот, который вы хотите использовать.

Добавление от @ TheDeadMedic

(…) последний также использует фильтр get_comments_number , который некоторые плагины, такие как Disqus, могут использовать для перехвата значения. В WordPress общий консенсус заключается в следующем: если функция существует для определенной цели, используйте ее, даже если есть «другие способы» сделать это.