質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.52%

  • WordPress

    7188questions

    WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

ワードプレスのカスタム投稿のループとシングルページの表示方法

解決済

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 565

ringoame49

score 5

質問失礼します。

現在Wordpressにてホームページを制作中です。

Wordpressにはもともと投稿が1つ用意されていますが下記サイトを参考に投稿を増やしました。

https://wordpressmatome.com/%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%A0%E6%8A%95%E7%A8%BF%E3%81%AE%E8%BF%BD%E5%8A%A0%E3%81%AE%E4%BB%95%E6%96%B9%E3%81%A8%E3%80%81%E5%85%B7%E4%BD%93%E7%9A%84%E3%81%AA%E4%BD%BF%E7%94%A8%E4%BE%8B/

無事に投稿を増やし、その投稿にカテゴリーやタグを持たせることができたのですが、記事の表示やループの表示の方法がわかりません。

普段は下記のようにして表示しています。
しかしカスタム投稿で作ったカテゴリーのID(4&pagedの部分の数字)を変えるだけでは表示されません。
カスタム投稿を使用し、カテゴリーの設定なしで記事を書きこんだ場合のループの表示方法もお分かりの方がいたら知りたいです。
WP-PaegNaviのプラグインを使用しているのですが、同じようにWP-PaegNaviを使用することは可能でしょうか?
また2つ目のカスタム投稿の追加方法もわかりません。

ループを表示させる場合。(特定のカテゴリーのみを表示)(category-スラッグ.php)

    <?php $q=new WP_query($query_string . '&posts_per_page=9&cat=4&paged='.$paged); ?> 
    <?php if($q->have_posts()): while($q->have_posts()): $q->the_post(); ?> 
    <a href="<?php the_permalink(); ?>" class="thumnail"></a>
    <a href="<?php the_permalink(); ?>"> 
    <?php echo mb_substr($post->post_title, 0, 16); ?></a>
    <?php endwhile; endif; ?>
    <?php wp_reset_postdata(); ?> 

シングルページの表示(single-スラッグ.php)

    <section>
        <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
        <article id="post-<?php the_ID(); ?>" class="content">
            <?php the_title(); ?>
            <?php the_content(); ?>
        </article>
        <?php endwhile;?>
        <?php endif; ?>
    </section>
        <?php if (get_previous_post()):?>
        <?php previous_post_link('%link','前の記事',TRUE); ?>
        <?php endif; ?>
        <?php if (get_next_post()):?>
        <?php next_post_link('%link','次の記事',TRUE); ?>
        <?php endif; ?>
<?php get_sidebar(); ?>

質問したい内容をまとめると以下になります。

1.カスタム投稿をfunctions.phpを使用して増やした場合の、それらのsingle-スラッグ.phpやcategory-スラッグ.phpでの表示方法。

2.2つ目のカスタム投稿の追加方法もわかりません。

3.カスタム投稿を作った際、カテゴリーなしで記事を書いた場合のsingle-スラッグ.phpやcategory-スラッグ.phpの表示方法
これは単にスラッグの部分をカスタム投稿タイプ名にすればいいのでしょうか。

4.WP-PaegNaviは正常に動作するか。

以上になります。

質問ばかりですが、ご存じの方がいらっしゃいましたらご教授いただければ幸いです。

宜しくお願い致します。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

+1

1.カスタム投稿をfunctions.phpを使用して増やした場合の、それらのsingle-スラッグ.phpやcategory-スラッグ.phpでの表示方法。

WP_Queryクラスやget_posts()関数を使用して投稿を取得します。

  • get_posts()を使用したサンプルコード
<?php
    $args = array(
        'posts_per_page' => 10,
        'post_type' => 'カスタム投稿のスラッグ',
        'category' => '', // カテゴリIDを指定
    );
    $posts = get_posts($args);
    if ($posts) :
        foreach ($posts as $post) :
?>
// ここに記事のHTML
<?php
        endforeach;
    endif;
?>

2.2つ目のカスタム投稿の追加方法もわかりません。

functions.phpに追記したコードを複製してカスタム投稿タイプ名を変更します。

3.カスタム投稿を作った際、カテゴリーなしで記事を書いた場合のsingle-スラッグ.phpやcategory-スラッグ.phpの表示方法
これは単にスラッグの部分をカスタム投稿タイプ名にすればいいのでしょうか。

1と同じ方法で可能です。

4.WP-PaegNaviは正常に動作するか。

wp_pagenavi()のパラメータに現在のループクエリを渡せば可能です。

wp_pagenavi(array('query' => $posts));

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+1

質問1-4部分に回答します。

  1. テンプレート階層を確認して、適切なものを使用してください。カスタムタクソノミーはカテゴリではありませんので taxonomy-{taxonomy}.php を使用することになります。
  2. わからないならプラグインを使用されては。Custom Post Type UI であれば出力用コードも取得できます。
  3. テンプレート階層を確認してください。
  4. カスタムタクソノミーなど通常の記事取得に関してはテンプレート上でWP_Queryを使わず、通常のループ if (have_posts()):while (have_posts()):the_post(); … endwhile;endif; で取得するほうが問題が起きにくいと思います。その場合、WP-PaegNaviで問題なくページングが可能です。

【[WordPress] テンプレートファイルの階層・優先順位 | ぶぶりんブログ】
http://buburinweb.wp.xdomain.jp/wordpress-template-faile

【Custom Post Type UIの使い方[WordPress]】
http://kotori-blog.com/wordpress/custom_post_type_ui/

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.52%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • WordPress

    7188questions

    WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。