0

私の質問は、ワードプレスのページにランダムなコメントを表示するにはどうすればよいですか? 私のウェブサイトで、人々がたくさんのコメントを残す wp ページを取得しました。それらをランダムに表示し、日時で並べ替えずに表示したいのですが、ページ分割されたコメントのコードは次のとおりです。どうすればよいですか? ありがとう :)

<?php foreach ($comments as $comment) : ?>

        <li <?php echo $oddcomment; ?>id="comment-<?php comment_ID() ?>">
            <div class="paginated-comments-number" style="float: left; color: #999; width: 30px; text-align: left;"></div>
        <?php
                if ( function_exists('get_avatar') )
                    echo get_avatar( $comment, 48 );
            ?>
            <cite><?php comment_author_link() ?> 
            </cite>
            <?php if ($comment->comment_approved == '0') : ?>
            <em>Your comment is awaiting moderation.</em>
          <?php endif; ?><br />

            <small class="commentmetadata"><a href="<?php echo Paginated_Comments_URL('comment-' . get_comment_ID()); ?>" title=""><?php comment_date('F jS, Y') ?> at <?php comment_time() ?></a> <?php edit_comment_link('edit','&nbsp;&nbsp;',''); ?></small>

            <?php comment_text() ?>
        </li>

    <?php
        /* Changes every other comment to a different class */
        $oddcomment = ( empty( $oddcomment ) ) ? 'class="alt" ' : '';
    ?>

    <?php endforeach; /* end for each comment */ ?>
</ol>

<p>
      <!-- Start Paginated Comments Pages -->
      <?php if ( Paginated_Comments_have_pages() ) : ?>
</p>
    <p>
      <?php endif; ?>
      <!-- End Paginated Comments Pages -->

      <?php else : // this is displayed if there are no comments so far ?>

      <?php if ('open' == $post->comment_status) : ?>
      <!-- If comments are open, but there are no comments. -->

      <?php else : // comments are closed ?>
4

1 に答える 1

0

あなたが求めていることを行うショートコード関数の提案は次のとおりです。

add_shortcode( 'randomComment', 'randomComment_handler' );

function randomComment_handler($post_id) {
    extract( shortcode_atts( array(
        'post_id' => '0',
        ), $atts ) );
    $out = "";
    $comments = get_comments("post_id=$post_id&status=approve");
    if ($comments) {
        $ndx = mt_rand(0,sizeof($comments)) - 1; 
        $comment = $comments[$ndx];
        $out = "<div class='randomComment'><div class='randomAuthor'>".$comment->comment_author."</div><div class='randomText'>".$comment->comment_content."</div></div>";
    }
    return $out;
}

これは に入りfunctions.php、ショートコードを任意のページまたは投稿に配置して、ランダムなコメントを表示できます。

[randomComment post_id="1337"]

post_idランダムなコメントを取得する投稿に応じて を変更するだけです。

于 2012-08-03T06:32:24.210 に答える