web-dev-qa-db-ja.com

comments_popup_link()に対するWPデータベースエラー

ループ内の各投稿のコメント数を表示するためにcomments_popup_link()関数を使用しています。

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

<?php if ( get_post_meta($post->ID, 'thumb_value', true) ) : ?>
        //something
<?php else: ?>
       //something else
<?php endif; ?>


        <h2><a href="<?php the_permalink() ?>" title="<?php the_title(); ?>" rel="bookmark"><?php the_title(); ?></a></h2> 

        <?php the_content(__('Read more'));?>
        <div class="post-meta">
       <?php the_time('F j, Y'); ?>
       <p>Category: <?php the_category(', '); ?></p>
       <p><?php the_tags(); ?></p>
       <p><?php comments_popup_link('Post Comment', '1 Comment', '% Comments'); ?></p>      
    </div>


<?php endwhile; ?> 
<?php $wpdb->show_errors(); 
$wpdb->print_error(); ?>

<?php else: ?>

<p><strong>There has been an error.</strong></p>
<?php $wpdb->show_errors(); ?> 
<?php $wpdb->print_error(); ?> </p>

<?php endif; ?>

すべてうまく表示されますが、私は得ます

WordPressデータベースエラー:[] SELECT * FROM wp_comments WHERE comment_post_ID = 216 AND comment_approved = '1' ORDER BY comment_date_gmt DESC

私はそれを得る理由私はただの骨董品です。

2
wpStudent

あなたのテンプレートコードは$wpdb->print_error()を含んでいます。この関数は[]の間の最後のデータベースエラーと実行されたSQLコードを出力します。しかし、エラーがなければ、空の括弧とSQLだけが表示されます。

$wpdb->show_errors()は、データベースエラーの表示を有効にする ために使用されます 。すべてのデータベースエラーを確認したい場合は、この関数をコードの上位(functions.php内、またはプラグイン内)のどこかで呼び出します。デバッグモードに入っているときだけこれをしたいと思うかもしれない従ってそれはこれのようになるでしょう:

if ( WP_DEBUG ) {
    $wpdb->show_errors();
}
4
Jan Fabry