web-dev-qa-db-ja.com

サイドバーに著者の投稿数を表示する - 変数

私のサイドバーにある単一の投稿ページのミニ作家統計のようなものを表示する必要があります。私はPHP codeウィジェットを使って、PHPコードをウィジェットに挿入できるようにしています。私がしたことは、このようにサイドバーでループを実行することです。

<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

    <ul>
        <li>


<?php echo 'Posts made: ' . get_usernumposts(4); ?>

<p>
Author Rank: <?php the_author_meta('user_level'); ?>
<br>
Author's Name: <?php the_author_meta('display_name'); ?>
<br>
User ID: <?php the_author_meta('ID'); ?>
</p>


        </li>

    <?php endwhile; else: ?>
        <p><?php _e('No posts by this author.'); ?></p>

    <?php endif; ?>

そのため、作成者ID「4」のユーザー投稿数が表示されます。そして、はい、それは廃止予定ですが、関数はまだ適切に動作します。

作者のデータは投稿ごとに異なるので、私は明らかにもう少し動的なものが必要なので、静的IDはうまくいきません。なぜそんなことがないのかわかりません

<?php the_author_meta('post_count'); ?>

私はそれがあまりにも便利だろうと思います。私はさまざまな方法で投稿数を選択する多くのクエリを見ましたが、そのすべてが私が必要としているものではないか、サイドバーのループ内外で機能しません。

私の最初の考えは、PHPの専門家ではありませんが、の値からデータを引き出すusernumpostsの値に変数を割り当てることです。

<?php the_author_meta('ID'); ?>

これがまったく可能かどうかはわかりませんが、確かに私の目標は達成されます。それでこれはできますか?どうやって?そうでない場合 - 私の他の選択肢は何ですか?

ありがとうございます。

1
Lynne

ユーザーが公開した投稿数を取得するには、適切なユーザーIDを渡してcount_user_posts()を呼び出すことが解決策であることがわかりました。

<?php echo 'Posts made: ' . count_user_posts( get_the_author_meta('ID') ); ?>

翻訳準備完了フォームに。

<?php printf( 'Posts made: %d', count_user_posts( get_the_author_meta('ID') ) ); ?>

変数への格納.

<?php $user_post_count = count_user_posts( get_the_author_meta('ID') ); ?>
3
Lynne