web-dev-qa-db-ja.com

テキストなしでのみDisqusのコメント数を表示するにはどうすればいいですか?

私はDisqus WordPressプラグインを使っています。ページがまだ完全にロードされていないときは、コメント数だけがありますが、その後、Disqus autoはコメントに文字列Commentsを追加します。

snapshot

テーマから:

    <div class="comment-bubble">
      <a href="<?php the_permalink(); ?>#comments" class="comments-link"><?php comments_number('0', '1', '%'); ?></a>
    </div>

何が悪いのかわからなかった。

3
Tuan Anh Tran

それがDisqusとどのように動作するかわからないが、次のフィルタを試してください。

add_filter( 'comments_number', 'comments_text_wpse_87886', 10, 2 );

function comments_text_wpse_87886 ( $output, $number )
{
    return $number;
}

元の戻り値は$outputです。代わりに、コメントの数だけを返します。そのフィルタは、次の コア関数 で発生します。前のフィルタフックを調整したい場合は、ここで再現します。

function comments_number( $zero = false, $one = false, $more = false, $deprecated = '' ) {
    if ( !empty( $deprecated ) )
        _deprecated_argument( __FUNCTION__, '1.3' );

    $number = get_comments_number();

    if ( $number > 1 )
        $output = str_replace('%', number_format_i18n($number), ( false === $more ) ? __('% Comments') : $more);
    elseif ( $number == 0 )
        $output = ( false === $zero ) ? __('No Comments') : $zero;
    else // must be one
        $output = ( false === $one ) ? __('1 Comment') : $one;

    echo apply_filters('comments_number', $output, $number);
}

関連: どこに私のコードを置きますか:プラグインまたはfunctions.php?

2
brasofilo

基本的には WP HTTP APIを使用した単なるリクエストです using その機能 次の行に沿った何か

$response = wp_remote_get( $disqusURLwithArgs, array( /* API args */ ) );
// Additional checks like wp_remote_retrieve_resonse_code
// or wp_remote_retrieve_response_message
// and is_wp_error( $response )
$content = wp_remote_retrieve_body( $response );
var_dump( $content );

そのような要求の詳細は Disqusホームページ にあります。

2
kaiser