サポート » 使い方全般 » TOPページに新着記事を本文含めて表示したい。

  • 解決済 katase

    (@katase)


    ワードプレス 2.9.1 、テーマ wsc5_0_b3を使用しています。
    表示設定は 固定ページ にチェック。
    フロントページ 「TOP」 
    投稿ページ 「ブログ」 のようになっています。

    現在 tOPページに 新着記事の表示をしています。
    表示方法は、 同じテーマ作者である
    wsc4_2_1 の home.phpに 記述されている

    <!–トピックス表示START–>
    <ul id=”toptopics”>
    <?php
    $lastposts = get_posts(‘numberposts=3&offset=0’);
    foreach($lastposts as $post) :
    setup_postdata($post);
    ?>

    • <span class=”date”><?php the_time(‘Y/m/d’) ?></span> ” id=”post-<?php the_ID(); ?>”><?php the_title(); ?>
    • <?php endforeach; ?>

      <!–トピックス表示END–>

      部分を wsc5の page.phpに移植。
      wsc4の スタイルシート内の #topicsの 部分を そのまんま wsc5に移植。

      結果、
      topics
      日付  記事タイトル
      と、良い感じで 表示されるようになりました。

      質問ですが、

      1.記事タイトルに 続けて 
      記事本文を 20文字 50文字など任意の文字数で
      表示するには どのように改造すれば 良いでしょうか?

      2.wsc5には home.phpと言う ファイルが無く
      page.phpに記述しているので 
      トップページ以外にも 同様の表示がされてしまいます。
      これを トップページのみ 表示する方法が知りたいです。

      よろしくお願いします。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • kurosquare

    (@kurosquare)

    記事本文を 20文字 50文字など任意の文字数で表示する

    <?php echo mb_substr(get_the_content(),0,20);?>
    でいけると思います。20文字なら20、50文字なら50にします。

    トップページのみ 表示する方法が知りたいです。

    is_front_page()を使うといいです。
    cf. http://wpdocs.sourceforge.jp/Conditional_Tags

    ということでサンプル。

    <!--トピックス表示START-->
    <?php if(is_front_page());?>
    	<ul id="toptopics">
    	<?php
    	$lastposts = get_posts('numberposts=3&offset=0');
    	foreach($lastposts as $post) :
    	setup_postdata($post);
    	?>
    	<span class="date"><?php the_time('Y/m/d') ?></span><a id="post-<?php the_ID(); ?>"><?php the_title();?></a>
    	<?php echo mb_substr(get_the_content(),0,40);?>
    	<?php endforeach; ?>
    <?php endif; ?>
    <!--トピックス表示END-->

    トピック投稿者 katase

    (@katase)

    kurosquare様
    ありがとうございます。
    <?php echo mb_substr(get_the_content(),0,40);?>
    上記を追加記述する事によって、
    3日以上苦しんでいた 課題を克服できました。
    心より感謝申し上げます。

    トップページのみ 表示する方法・・
    is_front_page() ・・についてですが
    当方 本日朝より この課題に取り組んでおり、
    自分なりに、検証しましたが、解決には至っておりません。

    ご紹介の 
    条件分岐タグの説明文は、読みました。
    併せて、wsc5の作者の 説明文である
    http://wsc.studiobrain.net/5/
    を 読んだ上で
    page.phpを複製して home.php と名前を変えてみたり、

    あるいは、
    フロントページの 名称を
    home、 front、などに変更して
    条件タグを それに合わせて入力してみたり、

    ページ新規追加の作業として
    page-slug.php – 例えば固定ページのスラッグが “about” の場合は page-about.php
    page-ID.php – 例えば固定ページの ID が6の場合は page-6.php
    それらも 実践してみました。

    ちなみに フロントページのソース部分は
    <li class=”page_item page-item-68 current_page_item”>top
    と なっておりますので 
    上記ID箇所に
    item-68 または 68 と入れてみましたが 改善しませんでした。

    記事内に PHPを可動する為の プラグインが あるみたいですが
    方法としては適切な感じがしないので
    ファイルの変更に拘っている 次第です。

    引き続き よろしくお願いします。

    kz

    (@kz)

    色々追加した 〜.php は削除して、元の page.php の頭から以下のようにすると、

    <?php get_header(); ?>
    
    <div id="wrap">
    <div id="mainwrap">
    
    <div id="main">
    <!--トピックス表示START-->
    <?php if(is_front_page()) : ?>
      <ul id="toptopics">
      <?php
      $lastposts = get_posts('numberposts=3&offset=0');
      foreach($lastposts as $post) :
        setup_postdata($post);
      ?>
      <li><span class="date"><?php the_time('Y/m/d') ?></span><a id="post-<?php the_ID(); ?>"><?php the_title();?></a>
      <?php echo mb_substr(get_the_content(),0,40);?>
      </li>
      <?php
      endforeach;
      wp_reset_query();
      ?>
      </ul>
    <?php endif; ?>
    <!--トピックス表示END-->
    
    <h2 class="pagename"><?php the_title(); ?></h2>
    /* 以下略 */

    お望みの動作をすることを確認しました。

    表示設定は 固定ページ にチェック。
    フロントページ 「TOP」 

    のママで OK です。

    トピック投稿者 katase

    (@katase)

    kz様 ありがとうございます。

    自分なりに、いじくってみて

    <!–トピックス表示START–>
    <?php if(is_front_page()) { ?>
    中略
    <?php } ?>
    <!–トピックス表示END–>

    と、すれば トップページのみに表示することは
    理解できました。

    トップページのデザインは、
    ページ編集画面で作ってあり、
    上から
    フラッシュ動画、
    アーカイブプラグインkougabu
    を配置してあります。
    その下の位置に トピックス表示をすることが希望なので
    page.php の 30行目あたりに
    <!–トピックス表示START–>を
    記述したところ、希望通りの表示はされましたが。
    その下に、欲しくないオマケで 
    表示したトピックに関わるコメントが長々と 表示されて かなりショックでした。

    kz様の ご提案の書き方は 下のほうに配置しても
    オマケは着かないので、ありがたく使わせて頂きます。

    出だし <?php if(is_front_page()) { ?> 締め <?php } ?> オマケつき
    出だし <?php if(is_front_page()) : ?> 締め <?php endif; ?> オマケ無し
    この違いみたいですね。

    因みに 多少変更させてもらいました。

    <!--トピックス表示START-->
    <?php if(is_front_page()) : ?>
    <ul id="toptopics">
    <?php 
     $lastposts = get_posts('numberposts=3&offset=0');
     foreach($lastposts as $post) :
     setup_postdata($post);
     ?>
    
    <li><a href="<?php the_permalink(); ?>" クリックで記事に飛ぶようにしたいので。
    
    id="post-<?php the_ID(); ?>">
    
    <strong><?php the_title();?></strong> タイトルなので多少太く。
    <br /> 唯一の知識で、改行しちゃいました。
    <?php echo mb_substr(get_the_content(),0,70);?>
    ・・・・ この先の期待感を持たせるために。
    </a> 同一の文字色、大きさの為に ここで締めました。
      </li>
      <?php endforeach;wp_reset_query();?>
      </ul>
    <?php endif; ?>
    <!--トピックス表示END-->

    お世話になりました、ありがとうございます。

    本当は kougabu を phpファイル内に記述して
    配置等の制御するのが より良い方法と認識していますが、
    今は 力不足です。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「TOPページに新着記事を本文含めて表示したい。」には新たに返信することはできません。