• ベストアンサー
  • 困ってます

wordpressで特定の記事の本文だけを取り出す記述

wordpressで特定の記事の本文だけを取り出す記述 超初心者です。 下記のようなwordpressの関数を使ったPHP文で「特定の記事の本文」のみを取り出したく いろんなwordpressのサンプルなどを参考にして作ってみました。 結果はまあ思い通りには出るのですが、 これって1つの記事を取り出すだけならスマートじゃないですよね・・・。 <?php query_posts('p=277'); ?> <?php if(have_posts()):while(have_posts()):the_post(); ?> <div><?php the_content(); ?></div> <?php endwhile;endif; ?> いまいちwhileなどのループなどがわかってないのですが、 よく考えれば1つの記事を抜き出すのにループを記述する必要があるのか? いろいろ試してみたのですが、エラーが頻出して挫折。 どうすればいいのかがわかんなくて質問させていただきました。 熟練された方はどういう記述にするのか参考にさせていただきたいです。

共感・応援の気持ちを伝えよう!

  • 回答数1
  • 閲覧数1286
  • ありがとう数9

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.1

WordPress Loopp は、対象となる投稿が、0個でも1個でも100個でも対応できます。 確実に1個しかない場合は、必ずしもループを書く必要はありません。 <?php query_posts('p=277'); ?> <?php the_post(); ?> <div><?php the_content(); ?></div> で良いと思います。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

お礼が遅くなりましてすみません。 ループを書かずとしてもやはりできたのですね。大変参考になりました。 これから使わせてもらいます!

関連するQ&A

  • WordPressのtag.phpのループ回数

    WordPressでタグの一覧ページtag.phpを作成してループを読み込ませたのですが、10記事しか表示されません。ループ部分のコードは以下のとおりです。 <?php if (have_posts()) : while (have_posts()) : the_post(); ?> <div> <a href="<?php the_permalink();?>" title="<?php the_title_attribute(); ?>"><img src="<?php echo wp_get_attachment_url( get_post_thumbnail_id() ); ?>" alt=""></a> <p><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></p> </div><!-- /.child-box --> <?php endwhile;?> <?php else:?> <?php endif;?> 該当する記事は40ほどあるのですが、違うタグで試してもやはり10記事しか表示されません。 色々と試したのですが原因がわかりません。ご教授いただけませんでしょうか。

    • ベストアンサー
    • PHP
  • WordPressにおいて、サブカテゴリーに画像を表示させる。

    WordPressにおいて、サブカテゴリーに画像を表示させる。 WordPress,PHP初心者です。 現在 情報サイトを作っているのですが、 あるカテゴリーのループ中に、サブカテゴリーにも属していると、画像を表示させたいです。 ショッピングサイト等で例を言うと 「シャツ」という大カテゴリーをループを使って一覧で出力し、 その中で、サブカテゴリー「売り切れ」や「NEW」にチェックを入れていると(管理画面で) それに適した画像が表示されるようにしたいのです。 ”「売り切れ」と「NEW」にどちらも属している場合もあります” なおかつ、そのサブカテゴリーにチェックが入っていると 上位に表示されると一層良いのですが。 ループの中で、更にループ処理?という考えがあまり正しくないような気がするのですが、 試している所やはりうまくいきません。 ソースは下記の通りです。 <!--大カテゴリーのループ開始--> <?php query_posts("cat=3&showposts=10"); ?> <?php if (have_posts()) : while (have_posts()) : the_post(); ?> <div class="list-box"> <a href="<?php the_permalink() ?>"> <img src="<?php echo get_post_meta($post->ID,'faceimage',TRUE); ?>" alt="<?php the_title(); ?>" width="141" height="141" /> </a> <p class="name"><?php the_title(); ?></p> <p class="size"><?php echo get_post_meta($post->ID,'textfield',TRUE); ?></p> <!--売り切れの場合、画像表示--> <?php query_posts("cat=4"); ?> <?php if (have_posts()) : while (have_posts()) : the_post(); ?> <div class="ico-on"><img src="hogehoge" alt="売り切れ" /></div> <?php endwhile; ?> <?php endif; ?> <!--新着アイテムの場合、画像表示--> <?php query_posts("cat=6"); ?> <?php if (have_posts()) : while (have_posts()) : the_post(); ?> <div class="ico-new"><img src="hogehoge2" alt="新着アイテム" /></div> <?php endwhile; ?> <?php endif; ?> </div> <!--ループ完全に終了--> <?php endwhile; ?> <?php endif; ?> 調べてみたものの、行き詰まっています。 稚拙な質問ではございますが、 どうぞご教授お願い致します。

  • 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
  • 「WordPress3サイト構築スタイルブック」

    chapter2の「business」を参考にサイトを作成しました。トップページの1箇所だけうまくいきません。http://wordpresstest.girako.com/ 検索したら、同じテキストを参考にして作成したサイトがあってそちらは正しく表示されていました。http://www.sys-f.com/wordpress2/ これは、トップページの下の文章の部分は、messageという固定ページで、表示してあります。 <div id="content"> <?php if(is_home()): ?> <?php query_posts('pagename=message'); ?> <?php if(have_posts()): while(have_posts()): the_post(); ?> <?php the_content(); ?> <?php endwhile; endif; ?> <?php else: ?> <?php if(have_posts()): while(have_posts()): the_post(); ?> <h2><?php the_title(); ?></h2> <?php the_content(); ?> <?php endwhile; endif; ?> <?php endif; ?> 以上はわたしのサイトの方のindex.phpの一部です。firebugでhtmlを見るようには参考にできないので、何が間違っているのか困っています。参考のファイルがテキストにはついていて、そのファイルと全く同じソースなのに、同じことが実現できないのです。一番早いのは、このテキストを持っている人だと話がわかりやすいのだと思いますが、どこからどこまで説明すればよいのかわからないので、不足部分があればご指摘ください。 これをきっかけにWPを克服しようとしているのに早速テキスト通りに行かず、困っているので教えてください。

    • 締切済み
    • PHP
  • wordpressの投稿記事のリストを表示したい

    固定ページにすべての投稿記事の投稿日とタイトルだけを表示したかったのですが,タイトルリストの下に記事の内容までもが表示されてしまっています。 http://zen73.net/zwp/ <固定ページに書いた記事>blog ------------------------------------------------------------ <h3>全ブログ一覧</h3> <div class="dl_list"> <?php query_posts('showposts=10'); ?> <?php if (have_posts()):while(have_posts()):the_post(); ?> <dl><dt><?php the_time('Y.n.j'); ?></dt> <dd><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title_attribute(); ?></a></dd></dl> <?php endwhile; endif; ?> </div></div> ------------------------------------------------ PHPは全くの素人なのですが ア 日付とタイトルだけを表示する方法をお教え願います。 イ 'showposts=10'ですと,10件だけの表示になるのではないかと思いますが,すべてを表示したいときの記述の仕方をお教え願います。 よろしくお願いいたします。

    • 締切済み
    • PHP
  • wordpressのリンクでの質問です。

    リンクの仕方で質問です。 現在参考書を読みながらwordpressの勉強をしています。 index.phpに <?php query_posts('category_name=test' ); ?> <?php if (have_posts()): ?> <ul class="item-lists"> <?php while(have_posts()): the_post(); ?> <li> <a href="<?php the_permalink(); ?>"><?php the_post_thumbnail(); ?></a> </li> <?php endwhile; ?> </ul> <?php endif; wp_reset_query(); ?> というループ文があります。 投稿記事から設定したアイキャッチのみを表示させ横一列にフロートしています。 現在リンク先が共有テンプレートになっており記事一つ一つ、個別に表示されるようになってます。 <?php the_permalink(); ?>を<?php bloginfo('url'); ?>/test/ に変更すれば意図したカテゴリーへリンク出来ますが、この方法で正しいのでしょうか? また、本来リンクしたいカテゴリーは記事ごとにアンカーを設定しています。(t01&#65374;t10) このループ文の中でアイキャッチに対応した記事のアンカーへリンクするにはどうすれば良いでしょうか? アドバイス等頂ければ本当に助かります。

    • ベストアンサー
    • CSS
  • WordPressのTOPページを固定ページで

    WordPressのTOPページを固定ページで製作しています。 使っているのはWordPress 3.2.1です。 http://sygnas.jp/2010/10/19/frontfix/ こちらのサイトを参考にして 「front_fix.php」を作り <?php /* Template Name: FrontFix */ ?> <?php get_header(); ?> <?php if (have_posts()) : ?> <?php while (have_posts()) : the_post(); ?> <?php endwhile; ?> <?php endif; ?> <?php $my_query = new WP_Query('&cat=0'); ?> <?php if ($my_query->have_posts()) : ?> <?php while ($my_query->have_posts()) : $my_query->the_post(); ?> <?php endwhile; ?> <?php endif; ?> <?php get_footer(); ?> と書き込みました。 それから、TOPページ用の固定ページのテンプレートを変更して [設定]>[表示設定]>[フロントページの表示]で「固定ページ」を選び、今回作ったページを選択して保存しました。 今回のサイトはTOPページのみサイドバーはいらないので <?php get_sidebar(); ?> は入れていません。 TOPページを表示させた時、ヘッダーとフッターは表示されるのですが 固定ページの中身も新着記事も表示されていない状態です。 やり方等間違っているのでしょうか? また、その他に良いやり方がありましたら教えていただけませんでしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • WordPress 条件分岐間違っている箇所は?

    WordPressで最新記事を判別して大きく見せるなど、表示を変更する条件分岐のカスタマイズ方法を下記のURLを参考に改造しました。 https://whitebear-seo.com/wordpress-newpost-conditional-branch/ 結果はエラーが出ました。 どこが間違っているか教えていただけないでしょうか? 宜しくお願いします。 <?php if ( have_posts() ) : if ( is_home() && ! is_front_page() ) : ?> <?php endif; /* 改造前 */ while ( have_posts() ) : the_post(); /* 改造前 */ get_template_part( 'template-parts/content', get_post_format() ); /* ページネーション */ endwhile; echo '<div class="text-center paging-navs">'; the_posts_pagination(); echo '</div>'; else : get_template_part( 'template-parts/content', 'none' ); /* ページネーション END */ endif; ?> /* 改造後 */の部分だけ改造しました。 ↓ <?php if ( have_posts() ) : if ( is_home() && ! is_front_page() ) : ?> <?php endif; /* 改造後 */ while ( have_posts() ) : the_post(); $counter++; if ($counter <= 1): ? get_template_part( 'template-parts/content2', get_post_format() ); else: /* 改造後 */ get_template_part( 'template-parts/content', get_post_format() ); /* ページネーション */ endwhile; echo '<div class="text-center paging-navs">'; the_posts_pagination(); echo '</div>'; else : get_template_part( 'template-parts/content', 'none' ); /* ページネーション END */ endif; ?>

    • 締切済み
    • PHP
  • wordpressが表示されない原因は?

    非常に困っております。 html文書にwordpressを組み込もうと思っています。 その前提として、httpd.confには AddType application/x-httpd-php .php .html が記述されてあります。 以下が問題のソースです。 <?php require('絶対パス(省略)/wp-blog-header.php'); ?> <?php echo '<?xml version="1.0" encoding="UTF-8"?>'; ?> <?php query_posts('showposts=1');?> <?php if(have_posts()):while(have_posts()):the_post(); ?> &#65374;&#65374;&#65374;内容(省略)&#65374;&#65374;&#65374;&#65374; <?php endwhile;endif; ?> <?php wp_reset_query()?> これをアップすると、ページは表示されますが、記事部分が表示されません。 ソースを見ると、 <?php require('絶対パス(省略)/wp-blog-header.php'); ?> <?xml version="1.0" encoding="UTF-8"?> ←★変わった部分 <?php query_posts('showposts=1');?> <?php if(have_posts()):while(have_posts()):the_post(); ?> &#65374;&#65374;&#65374;内容(省略)&#65374;&#65374;&#65374;&#65374; <?php endwhile;endif; ?> <?php wp_reset_query()?> となっています。 wp-blog-header.phpへの絶対パスに間違いは無く、 また、 <?php echo '<?xml version="1.0" encoding="UTF-8"?>'; ?> が <?xml version="1.0" encoding="UTF-8"?>となっていることから、 php命令文は解釈されている(動いている)と思われます。 ということは、wordpressを組み込むソースが悪いと思うのですが、 何が悪いのか全く分かりません。 絶対パスが間違っていれば、エラー表示になる(ページが表示されるはずない)と思うのですが、 サーバーによっては絶対パスが間違っていても、エラーが表示されなかったりするのでしょうか? ちなみに、wp-blog-header.phpは別ドメインで動かすので“絶対パス”指定は必然設定です。 wordpress熟練者の皆様、どうか力を貸してください。 よろしくお願いします。

  • Wordpressのpage.phpについて

    初めまして。 既にあるサイトをWordpressに移行しようと考えております。 色々調べ、固定ページ(小さな店のサイトの為ほとんどが固定ページです)は、page.php(もしくはpage.phpを基にしたabout.php等)で設定するという事はわかったのですが。 page.phpの内容は、極端に言えば <?php if (have_posts()) : while (have_posts()) : the_post(); ?> <?php the_content('<p class="serif">Read the rest of this page &amp;raquo;</p>'); ?> <?php endwhile; endif; ?> だけ書いておき、あとはページ作成の時に、現在あるhtmlタグを貼り付けるだけ という感じで問題ないのでしょうか? (もちろん、画像パスは書き換えるとして) Wordpressに関しては初心者の為わからない事だらけですので、詳しい方ご教授ください。

    • 締切済み
    • PHP