我不能完全掌握的与Foreach&count_user_post()相关的代码

时间:2020-02-18 作者:FakhriAz

在处理我的第一个WordPress主题时,我根据this tutorial 它本身是基于2014年的主题。

我无法理解的是:

$post_count = count_user_posts( $contributor_id );
从这个代码示例中(特别检查我的第一个问题的前10行,这很可能会自动回答我的最后几个问题):

<?php
// Output the authors list.
$contributor_ids = get_users( array(
  \'fields\'  => \'ID\',
  \'orderby\' => \'post_count\',
  \'order\'   => \'DESC\',
  \'who\'     => \'authors\',
));

foreach ( $contributor_ids as $contributor_id ) :
$post_count = count_user_posts( $contributor_id );
  // Move on if user has not published a post (yet).
  if ( ! $post_count ) {
    continue;
  }
?>

<div class="contributor">
  <div class="contributor-info">
    <div class="contributor-avatar"><?php echo get_avatar( $contributor_id, 132 ); ?></div>
    <div class="contributor-summary">
      <h2 class="contributor-name"><?php echo get_the_author_meta( \'display_name\', $contributor_id ); ?></h2>
      <p class="contributor-bio">
        <?php echo get_the_author_meta( \'description\', $contributor_id ); ?>
      </p>
      <a class="button contributor-posts-link" href="<?php echo esc_url( get_author_posts_url( $contributor_id ) ); ?>">
        <?php printf( _n( \'%d Article\', \'%d Articles\', $post_count, \'twentyfourteen\' ), $post_count ); ?>
      </a>
    </div><!-- .contributor-summary -->
  </div><!-- .contributor-info -->
</div><!-- .contributor -->

<?php
endforeach;
?>
我已经查过抄本了count_user_posts( ) 但我无法理解代码是如何与作为foreach循环输出的文档保持一致的$contributor_id 不仅仅是ID 而且post_count,descauthors.

这些应该是第二个参数,是可选的

单个帖子类型或帖子类型数组

正如法典规定的:

$post\\U类型(数组|字符串)(可选)Single post type or array of post types来计算发布的数量。默认值:“post”

那么“post\\u count”、“desc”和“authors”的值如何呢。是否符合Codex文档?

同样的问题:

get_avatar( $contributor_id, 132 )
以及

get_the_author_meta( \'display_name\', $contributor_id )

1 个回复
最合适的回答,由SO网友:Tom J Nowell 整理而成

这些参数是可选的,正如codex所述:

$post\\U类型

(string) (optional) Post type to count the number of posts for.

    Default: "post"
所以它是可选的,不是必需的。如果未传入,则默认值为"post".

可选参数是PHP的一部分,例如。


function print_number( $number=5 ) {
    echo $number;
}
print_number( 2 ); // prints 2
print_number(); // prints 5
请注意,这并不意味着所有参数都是可选的。检查文档中您使用的函数的参数,看看它是否是可选的,以及它的默认值是什么

相关推荐

Ajax is not working in a loop

我试图使用ajax显示与所选类别相关的数据。它仅适用于最后选定的术语,而不适用于所有选定的术语。任何帮助都将不胜感激。var selected_cat = $(\'#my-categorychecklist input:checked\').map(function() { return this.value }).get(); $(document).ready( function () { var getid = $(\'#my