###前提・実現したいこと
wordpressにおいて条件分岐をしたいのですが、詳しい方回答をお願いします。
そのカテゴリに属する記事のコメントから最新の口コミを取得してアーカイブページに表示するというのをデータベースも活用してやっているのですが、その条件式で、
$e = single_cat_title();
$s = get_the_terms($value -> ID, '自作カテゴリ名');
if ( $e !== $s){
cointinue;
}
else{
表示したい内容
}
といった具合で一致した時に表示しようとしても一向にうまくいきません。
レベル的にはPHPを学び始めて2ヶ月ほどのド初心者なのであまり難しいことはわからないです。
以下のコードは全てのpostの中から特定のカテゴリ名が付けられたコメントから1件だけ抽出成功しているもので、これをベースにしてご教授お願いします。
###該当のソースコード
<?php $i = 0; global $wpdb; global $data; $query = " SELECT comment.comment_content, comment.comment_date, post.ID, post.post_title, post.post_name, meta.meta_value, count.count FROM ( SELECT cur.comment_ID, cur.comment_post_ID, cur.comment_content, cur.comment_date FROM wp_comments cur LEFT JOIN wp_comments nxt ON cur.comment_post_id = nxt.comment_post_ID AND cur.comment_date < nxt.comment_date WHERE nxt.comment_post_ID IS NULL AND cur.comment_approved = 1 ORDER BY cur.comment_date DESC ) comment, ( SELECT ID, post_title, post_name FROM wp_posts, wp_term_relationships term WHERE wp_posts.ID = term.object_id AND wp_posts.post_status = 'publish' AND term.term_taxonomy_id = 36 ) post, ( SELECT comment_ID, meta_value FROM wp_commentmeta WHERE meta_value is not null ) meta, ( SELECT count(comment_ID) as count, comment_post_ID FROM wp_comments WHERE comment_approved = 1 GROUP BY comment_post_ID ) count WHERE comment.comment_ID = meta.comment_ID AND comment.comment_post_ID = post.ID AND comment.comment_post_ID = count.comment_post_ID AND post.post_title IS NOT NULL ORDER BY comment.comment_date DESC LIMIT 30; "; $data = $wpdb->get_results($query); foreach ($data as $value): ?> <li> <?php if($i<6) { ?> <div><p>NEW</p> <?php } else{ ?> <div> <span></span> <?php }; ?> <a href="<?php echo $value -> post_name; ?>"> <span class="top_kutikomi_tittle"> <?php echo $value -> post_title; ?> </span> </a> <div> <?php $terms = get_the_terms($value -> ID, 'cat2'); ?> <a href="<?php echo esc_url(home_url('/')); ?>cat2/<?php echo $terms[0]->slug; ?>"> <span> <?php echo $terms[0]->name; ?> </span> </a> 総口コミ数:<?php echo $value -> count; ?>件 <span class="star_top"><?php echo_db_rates($value -> meta_value); ?></span> </div> </div> <div> <?php echo wp_trim_words( $value -> comment_content, 40, '...' ); ?> </div> </li> <?php $i++; endforeach; wp_reset_postdata(); ?>``` ###試したこと 課題に対してアプローチしたことを記載してください ###補足情報(言語/FW/ツール等のバージョンなど)
回答1件
あなたの回答
tips
プレビュー