• 締切済み

WPで複数カテゴリをもつ記事を投稿した場合

例えば、「牛乳」と「ヨーグルト」という記事があったします。 その二つの記事はそれぞれ複数のカテゴリに所属しています。  「牛乳」⇒ 乳製品 飲料 「ヨーグルト」⇒ 乳製品 発酵食品 「ゼリー」⇒ デザート これを表のページでは、乳製品をクリックしたら牛乳とヨーグルトが表示され、 飲料なら牛乳だけ、発酵食品ならヨーグルトだけを表示させようとしています。 ネットで調べたところ、下記のようなタグでカテゴリを表示 できるとのことなのですが、うまく表示されません。 ※下記はカテゴリテンプレート内の記述です。 query_posts("cat=".$cat_id."&posts_per_page=".$per_page."&paged=".$paged); if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> このように記述すると、なぜか「飲料」クリックしてもヨーグルトも表示され、 「発酵食品」をクリックしても牛乳が表示されてしまいます。 乳製品つながりのものがなぜか全て表示されてしまいます。 関係ないデザートカテゴリのゼリーは表示されません。 「牛乳」⇒ 乳製品 飲料 「ヨーグルト」⇒ 乳製品 発酵食品 「ゼリー」⇒ デザート このように、一つの投稿が複数のカテゴリを持つ場合で カテゴリ単体に属している記事のみを表示させるには、 どうしたらよいでしょうか? ネットを探しても同じ問題で悩んでいる人が見つからなかったので 相談させて頂きました。 よろしくお願いいたします。

  • PHP
  • 回答数1
  • ありがとう数5

みんなの回答

  • doraneko66
  • ベストアンサー率11% (535/4742)
回答No.1

関連するQ&A

  • 【WordPress】投稿がないカテゴリ非表示方法

    【WordPress】 投稿がないカテゴリー 非表示 方法 カテゴリーの1つを決め すべての子カテゴリーと投稿を表示させる際に、 子カテゴリー内に投稿がない場合、 子カテゴリー名を表示させないようにしたいです。 下記のソースでうまくいきませんでした。 <?php $chihirdren=get_categories( 'parent=5&hide_empty=0&orderby=slug&order=DESC'); foreach($chihirdren as $child){ ?> <?php if(have_posts()):?> <h2><?php echo $child->cat_name ?></h2> <?php else: // no post ?> <?php endif; ?> <?php $wp_query->query(array('cat'=>$child->cat_ID,'posts_per_page'=>-1)); while ($wp_query->have_posts()) : $wp_query->the_post(); ?> <h3><?php the_title(); ?></h3> <?php endwhile; } ?> 大変申し訳ございません。 ご教授をお願いいたします。。

    • ベストアンサー
    • PHP
  • wordpressの投稿記事が日付順に並ばない

    初めまして。wordpressについてお聞きしたいのですが、 どなたか詳しい方、教えて頂けないでしょうか。 カスタム投稿で作った記事のタイトルと日付を抽出して、新着情報一覧を作りました。 この投稿記事を、新着順にソートして並べたいのですが、不具合がでて困っています。 普段はwordpressのデフォルトの設定通り、最新の日付順に表示されているのですが、 たまに、古い記事の下に新着記事が表示されてしまうのです。 例えば8/1に投稿した記事の下に、最新の8/12の投稿が 表示されてしまいます。 プラグインは 「Post Types Order」と「postMash」を入れています。 このプラグインの不具合でおかしくなることはあるのでしょうか。 【ソース】 <?php query_posts('post_type=news&posts_per_page=6'); ?> <?php if(have_posts()): while(have_posts()): the_post(); ?> <?php get_template_part('content','title'); ?> <?php endwhile; endif; ?> 【仕様】 WordPress 2.9. PHP 5.2.17 データベース バージョン: MySQL 5.5 どうぞよろしくお願いいたします。

    • ベストアンサー
    • PHP
  • ヨーグルトの美味しい食べ方・作り方

    こんばんは! 最近ヨーグルトを作っているのですが何かデザートとして美味しい食べ方は無いでしょうか?普段は牛乳を足して飲むヨーグルトとして飲んでいます。 また、何か変わったヨーグルトの作り方はありますか?豆乳で作るとか、何かを混ぜて醗酵させると… とか、AとBのヨーグルトを混ぜて作るなど。 どんな事でも良いので教えて下さい☆

  • WordPressの任意のカテゴリを記事をトップページへ表示させる方法+α

    ちょっと壁にぶつかりまして、質問させて頂きます。 「おすすめ」というカテゴリを作成し、それに属する記事たちを トップページに表示させる、という話なのですが、 <h3 id="h-recommend">おすすめの記事</h3> <?php $posts = get_posts('category_name=recommend'); foreach($posts as $post) : setup_postdata($post); ?> <h4><?php the_title(); ?></h4> <p>記事本文</p> <?php endforeach; ?> と記述しました。試しに、記事を三つばかり 「おすすめ」カテゴリに設定して投稿したら、 <h3>おすすめの記事一覧</h3> <h4>記事その(1)</h4> <p>記事その(1)の本文</p> <h4>記事その(2)</h4> <p>記事その(2)の本文</p> <h4>記事その(3)</h4> <p>記事その(3)の本文</p> という風になり、とりあえずの成功はしました。 この場合、<h4>たちに関しては、記事が0の時は当然何も表示されない のですが、 <h3>だけ表示されている状態が不自然です。 今回、記事を投稿して初めて<h3>も含む記事全てが表示さる ようにしたいと思っています。 但し、この時<h3>は繰り返しをしません。 「おすすめ」カテゴリに記事を投稿して初めて全てが発動する、 と言った感じにしたいです。 どのような記述方法を取ればよろしいでしょうか? どなたかご教授頂ければ、非常に助かります。よろしくお願い致します。

  • RSSと投稿記事を交互に表示させたい

    内容の修正が必要ですが原因がわかりません 1.投稿に画像やカテゴリーなどが表示されず、タイトルと日付けのみ表示されている 2.RSS画像にURLがついておらず画像のみ表示されている 3.RSSの画像がない場合ダミー画像を表示させたいが書き方が調べてもわからない <?php $dbh = connect_db(); $categories = []; foreach (get_categories() as $category) { $categories[$category->cat_ID] = $category; } function set_other_data($post) { // アイキャッチIDを取得 $post_thumbnail_id = get_post_thumbnail_id($post); // アイキャッチ画像の確認 if ($post_thumbnail_id) { // 存在する $image_src = wp_get_attachment_image_src($post_thumbnail_id); // サムネイルの画像URLを設定 $post->thumbnail = $image_src[0]; } else { // 存在しない $post->thumbnail = 'noimage.jpg'; } // カテゴリーIDを取得 $post->categories = wp_get_post_categories($post->ID); // コメントテキスト if (0 == $post->comment_count) { // コメントなし $post->comments = __('No Comments'); } else { // コメントあり $post->comments = $post->comment_count.'件のコメント'; } // コメントリンク $post->comments_link = get_comments_link($post->ID); } delete_old_rss($dbh);//接続オブジェクトを渡す //RSS保存 $dbh = connect_db();//① $stmt = $dbh->prepare('insert into rss_feed (title, link, date, img) values (?, ?, ?, ?) on duplicate key update title=?, link=?, date=?, img=?');//② $url1 = get_rss_site_url(); foreach ($url1 as $url) { if (($rss = @simplexml_load_file($url)) === false) { continue; } foreach ($rss->item as $item) { $dc = $item->children('dc', true); $date = date('Y-m-d H:i:s', strtotime($dc->date)); if ($date < $delete_date) { continue; } $title = $item->title; $link = $item->link; $content = $item->children('content', true); $result = preg_match('/<img[^>]*src=\"([^"]+)\"[^>]*>/i', $content->encoded, $matches); if (1 == $result) { $img = $matches[1]; } else { $img = ''; } $stmt->execute([$title, $link, $date, $img, $title, $link, $date, $img]); } } if (ctype_digit($_REQUEST['page'])) { $current_page = (int) $_REQUEST['page']; } else { $current_page = 1; } if ($current_page > $wp_query->max_num_pages) { $current_page = $wp_query->max_num_pages; } $block_per_page = 2; $rss_per_block = 18; $posts_per_block = $wp_query->post_count / $block_per_page; //RSS読み込み $rss_per_page = $block_per_page * $rss_per_block; $rss_offset = ($current_page - 1) * $rss_per_page; $sql = 'SELECT * FROM rss_feed ORDER BY date DESC LIMIT ?,?'; $stmt = $dbh->prepare($sql); $stmt->bindParam(1, $rss_offset, PDO::PARAM_INT); $stmt->bindParam(2, $rss_per_page, PDO::PARAM_INT); $stmt->execute(); $rss_items = $stmt->fetchAll(PDO::FETCH_OBJ); $posts_per_page = $block_per_page * $posts_per_block; $posts_offset = ($current_page - 1) * $posts_per_page; $args = [ 'posts_per_page' => $posts_per_page, 'offset' => $posts_offset, ]; $post_items = get_posts($args); //表示 for ($i = 0; $i < $block_per_page; ++$i) { echo '<h2>ブロック</h2>'; echo '<h3>RSS</h3>'; for ($j = 0; $j < $rss_per_block; ++$j) { $item_index = $i * $rss_per_block + $j; if ($item_index >= count($rss_items)) { break; } $item = $rss_items[$item_index]; echo '<ul>'; echo "<li class=\"sitelink\"><a href=\"{$item->link}\">{$item->title}</a></li>"; echo "<li class=\"sitelink\"><a href=\"{$item->link}\">site</a></li>"; echo "<li class=\"sitedate\">{$item->date}</li>"; if (!empty($item->img)) { echo "<li><img src=\"{$item->img}\" width=\"100\"></li>"; } echo '</ul>'; } echo '<h3>投稿</h3>'; for ($j = 0; $j < $posts_per_block; ++$j) { $item_index = $i * $posts_per_block + $j; if ($item_index >= count($post_items)) { break; } $item = $post_items[$item_index]; echo '<ul>';   echo "<li><a href=\"{$item->guid}\">{$item->post_title}</a></li>"; echo "<li>{$item->post_date}</li>"; echo '</ul>'; } }

    • ベストアンサー
    • PHP
  • WP トップページに投函した画像を表示

    トップページに最新記事を並びます。 下記のプログラムはタイトルと記事の抜粋のみです。 記事内にある画像を表示するにはどうすれば良いでしょうか? アイキャッチ画像とは別にしたいです。 宜しくお願いします。 <?php $cat = 'info'; //スラッグ $num = '5'; //記事表示数 global $post; $term_id = get_category_by_slug($cat)->term_id; $myposts = get_posts('numberposts=' .$num. '&category_name=' .$cat); if ($myposts) { echo '<ul>'; foreach($myposts as $post): setup_postdata($post); echo '<li><a href=' .get_permalink(). '>'; echo '</a>'; echo '<h4><a href='.get_permalink().'>'. the_title("","",false).'</a></h4>'; echo '<p>' .mb_substr( strip_tags( $post -> post_content ), 0, 30 ). '...</p></li>'; endforeach; echo '</ul>'; } ?>

    • ベストアンサー
    • PHP
  • WPでphpファイルにエラーが出る

    attitudeというテーマのphpデータに最新記事のお知らせを表示させたいと思っています そこで下記のデータを加えると、最後の<php? get_footer() ?;>になぜかシンタックスエラーが出てきます <?php global $post; $top_news = get_posts( array( 'category_name' => 'info' , //カテゴリースラッグはinfo 'posts_per_page' => 5, //1ページでの表示件数 ) ); ?> <ul class="postsList"> <?php foreach( $top_news as $post ) : setup_postdata($post); ?> <li><?php the_title(); ?></li> </ul> <?php wp_reset_postdata(); ?> <ul>より下を削除するとエラーが消えます。 何卒、宜しくお願いいたします。 以下はページ全体のコードです。参考にお願いします。 <?php /** * Template Name: Business Template * * Displays the Business Layout of the theme. * * @package Theme Horse * @subpackage Attitude * @since Attitude 1.1 */ ?> <?php get_header(); ?> <?php /** * attitude_before_main_container hook */ do_action( 'attitude_before_main_container' ); ?> <div id="container"> <?php /** * attitude_business_template_content hook * * HOOKED_FUNCTION_NAME PRIORITY * * attitude_display_business_template_content 10 */ do_action( 'attitude_business_template_content' ); ?> </div><!-- #container --> <?php /** * attitude_after_main_container hook */ do_action( 'attitude_after_main_container' ); ?> <?php global $post; $top_news = get_posts( array( 'category_name' => 'info' , //カテゴリースラッグはinfo 'posts_per_page' => 5, //1ページでの表示件数 ) ); ?> <ul class="postsList"> <?php get_footer(); ?> ーーーーーーーーーーーーーー

    • 締切済み
    • PHP
  • WP タクソノミー前後の記事リンクについて

    お客様の声:タクソンミー名(voice) ようにarchive-voice.phpを作りました。 記事の中身表示はsingle.phpはつくらず、ブログ用のindex.phpと共通にしました。 ブログ用のindex.phpには ↓↓↓↓ <!--内容の出力--> <?php if(is_home() || is_category() || is_archive()): ?> <div class="kiji"> <?php if(have_posts()): while(have_posts()): the_post(); ?> <div class="kiji-box"> <p class="catch-taitle"><span class="styledeco"><?php the_category(','); ?></span></p> <!-- アイキャッチ画像設置 --> <?php if (has_post_thumbnail()): ?> <?php the_post_thumbnail('medium'); ?> <?php else: ?> <?php echo '<img src="'.get_template_directory_uri().'/img/noimage.gif" alt="noimage" />'; ?> <?php endif; ?> <h2><a class="linktitle" href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2> <p><?php echo mb_substr(get_the_excerpt(), 0, 120); ?><a class="linkleft" href="<?php the_permalink(); ?>">続きを読む</a>]</p> <div class="postinfo"><?php echo get_the_date(); ?>(<?php the_time(); ?>)<?php edit_post_link(' Edit',' |',''); ?></div> </div> <?php endwhile; endif; ?> </div> <?php else: ?> <!--フロントページ、アーカイブ、カテゴリ--> <!--単独ページ--> <?php if(have_posts()): while(have_posts()): the_post(); ?> <h2 class="blog-title"><?php the_title(); ?></h2> <div class="postinfo"><?php echo get_the_date(); ?>(<?php the_time(); ?>) | カテゴリー:<?php the_category(','); ?><?php edit_post_link(' Edit',' |',''); ?></div> <div class="blog_img"><?php if (has_post_thumbnail()): ?> <?php the_post_thumbnail('full'); ?> <?php endif; ?></div> <?php the_content(); ?> <?php endwhile; endif; ?> <?php endif; ?> <!--内容の出力ここまで--> <!--ページ送り--> <?php if (function_exists("pagination")) {pagination($additional_loop->max_num_pages); } ?> <!--個別の記事のページ送り--> <div id="pagelink"> <?php if(is_single()): ?> <p class="cell1"><?php previous_post_link('←%link', '%title', true, ''); ?></p> <p class="cell2"><?php next_post_link('%link→', '%title', true, ''); ?></p> <?php endif; ?> これだと、お客様の声のページに 記事の前後のリンクが表示されません。 <?php previous_post_link('« %link', '前の記事', TRUE, '', 'voice'); ?> <?php next_post_link('%link »', '次の記事', TRUE, '', 'voice'); ?> としてみたのですが、やはり表示されませんでした。 お客様の声とブログを共通にしているから表示されないのでしょうか・・・?

    • 締切済み
    • PHP
  • ちょっとすいません

    牛乳一杯(250cc)をヨーグルトで補うとすると どれくらい食べればよいですか。それと聞いたはなしなんですが牛乳はそのまま飲んでも、暖かくして飲んでも体を冷やしてしまうとききました。ほんとでしょーか?? しかし、ヨーグルトは同じ乳製品なのですが乳酸発酵しているのでもんだいないそうなんですが??

  • 牛乳はからだに悪いので飲みません

    牛乳も乳製品も好きなので栄養補給ではなく、嗜好品として、毎日食べています。 でも、何人か友人は、牛乳は体に悪いという考えからと、進んで口にはしていません。 そういう考えがあるのは、食を意識する多くの方がご存知だと思います。 体に良いと言われているヨーグルトやチーズ等発酵食品まで、NGです。 牛乳に限らず、どの食品も、体の状態(疾患)によって、 栄養にもなる人もいれば、摂取しない方がいい人もいると思うのですが、 なぜ、牛乳はここまで、言われるようになったのでしょうか。 牛乳を飲んでいますか?やめましたか?理由を教えてください。 ※そんなこと言っちゃ何も食べれないから気にしない、的な意見は無しでお願いします。

専門家に質問してみよう