•  お世話になります。
    デフォルトの投稿欄のカテゴリーが新着情報、業務連絡、イベント情報等でいっぱいになってしまったため、ブログを新たにカスタム投稿で設定することにしました。
    記事一覧が出る作りにしてデフォルトの投稿欄そっくりにしたいのですが、いざやってみると自分にとっては難しくて詰まってしまいました。(検索すると色々出てくるのですが、どうも納得いく結果が得られませんでした。。)

    デフォルトのloop.phpからコードをコピーして修正するのが最も労力が少なくできるかな?と思ったのですが。。とりあえずfunction.phpで下記コードを書いてカスタム投稿欄の設定はできています。
    ———————————————————————–
    //ブログ
    register_post_type(
    ‘blog’,
    array(
    ‘label’ => ‘ブログ’,
    ‘hierarchical’ => false,/*ブログ形式にするため*/
    ‘public’ => true,
    ‘query_var’ => false,
    ‘supports’ => array(
    ‘title’,
    ‘editor’,
    ‘thumbnail’,
    ‘comments’,
    ‘custom-fields’,
    ‘page-attributes’
    )
    )
    );
    ———————————————————————————

    次に、ページに「ブログ」を作り、index.phpをコピーして作ったテンプレートindex-blog.phpを割り当てました。index-blog.phpのループ部分に、デフォルトのloop.phpに下記コードをどこかに付け足したものを置いてやればいいのかな?と考えております。
    <?php $loop = new WP_Query( array( ‘post_type’ => ‘blog’, ‘posts_per_page’ => 5 ) ); ?>

    で、結局ここから具体的にどうすればいいか分からずなのですが、上記考え方で実現できまうでしょうか?あるいはもっと効率のよいやり方がありましたらご教授いただけたら大変ありがたいです。

5件の返信を表示中 - 1 - 5件目 (全5件中)
    1. register_post_type の最後の4行を変更

      'page-attributes'
      ),
      'has_archive' => true
      )
      );
    2. ページ「ブログ」を削除し、index-blog.php を archive-blog.php にリネームする。
      (そのページを他に使い回すのなら、ページスラッグの「blog」は変更しておく)
    3. 表示件数を変更したいなら
      $loop = new WP_Query( array( ‘post_type’ => ‘blog’, ‘posts_per_page’ => 5 ) ); ぶぶんは

      query_posts($query_string . ‘&posts_per_page=5’); または
      query_posts(array_merge(array(‘posts_per_page’ => 5), $wp_query->query)); などで。
      *ポストタイプの指定は必要なし。

    4. 念のためパーマリンクの更新を行う。(何も変更する必要はない)

    これでページングも含め問題なく表示されると思いますy。
    ポストタイプのアーカイブタイトルなどはこの辺を参考に。
    http://varl.jp/note/wp-3-1-custom-post-type-settings-summary

    あっ WP3.1 でないとだめです。↑

    トピック投稿者 kamiy

    (@kamiy)

     >LVP8様

     大変ありがとうございます。このサイトの運営主様でしょうか、これはありがたいです!
    早速1,2の処理をやってみました。
    ・ブログ記事一覧ページが表示されましたが、画像が表示されません(アイキャッチの方ではなく、投稿欄で入力した画像が出ません)。どうすれば宜しいか分かりますでしょうか。
    ・3の表示件数変更のためのコードをどこに書くべきなのでしょうか。
    ・メニューに出す「ブログ」の飛び先URLですが、
    http://*****.com/?post_type=blog にしておいていいんでしょうかね?

    追加質問で恐れ入ります。どうぞ宜しくお願い致します。

    アイキャッチの方ではなく、投稿欄で入力した画像が出ません

    テーマは何をつかってますか?
    これはブログ記事一覧(アーカイブページ)ですか?
    新着情報、業務連絡、イベント情報などでは画像の表示に問題ないのですか?

    3の表示件数変更のためのコードをどこに書くべき

    ループが始まる前なら、テーマの先頭でも、loop.phpを読み込む直前でも大丈夫です。

    メニューに出す「ブログ」の飛び先URLですが、
    http://*****.com/?post_type=blog

    特に問題はないと思います。僕はデフォルト設定(’query_var’ => true)にしています。
    http://*****.com/?blog=投稿名

    トピック投稿者 kamiy

    (@kamiy)

     >LVP8様
     
     お返事ありがとうござます。
    ・テーマはtwentytenで、子テーマを作成しております。
     やりたいことは、デフォルトのブログのように投稿欄に入れた記事、画像を全て出す
     ことです。新着情報、業務連絡、イベント情報等はデフォルトのブログ投稿欄から
     入力しているので、問題ありません。これと同じアウトプットをカスタム投稿でしたい
     のです。
     そもそもブログ記事一覧(アーカイブページ)では画像を出せないのでありましたら、
     やりたいこととちょっと違っております。説明不足で申し訳ありません。
    ・そこでindex.phpをもとに下記のコードを書いてみたところ、画像も出てくれるのですが、
     レイアウトが思いっ切り歪んでしまいました。CSSをいじれば何とかなると思って
     調整してみるのですが思うように行かずです。。

    ——————————————————————————-
    <div id=”container”>
    <div id=”content” role=”main”>
    <?php $loop = new WP_Query( array( ‘post_type’ => ‘headline’, ‘posts_per_page’ => 5 ) ); ?>

    <?php while ( $loop->have_posts() ) : $loop->the_post(); ?>

    <div id=”post-<?php the_ID(); ?>” <?php post_class(); ?>>
    <h2 class=”entry-title”>” title=”<?php printf( esc_attr__( ‘Permalink to %s’, ‘twentyten’ ), the_title_attribute( ‘echo=0’ ) ); ?>” rel=”bookmark”><?php the_title(); ?></h2>

    <div class=”entry-meta”>
    <?php twentyten_posted_on(); ?>
    </div><!– .entry-meta –>

    <div class=”entry-content”>
    <?php the_content(); ?>
    </div>
    </div>
    <?php endwhile; ?>
    ——————————————————————————-

     以上のような次第です。
     飛び先URLはお教えの通りで問題解決です!ありがとうございました。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • トピック「カスタム投稿でブログを作るには?」には新たに返信することはできません。