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

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

新規登録して質問してみよう
ただいま回答率
85.48%
WordPress

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

1653閲覧

wordpressの固定ページにカスタム投稿タイプで作った投稿を一覧で表示させたいです。

patapata1234

総合スコア26

WordPress

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2017/04/21 02:51

編集2017/04/21 02:54

###前提・実現したいこと
wordpressの固定ページにカスタム投稿タイプで作った複数の投稿を一覧で表示させたいです。
ページ送りもしたいです。
使っているプラグインは「Advanced Custom Fields」と「Custom Post Type UI」です。
array( 'post_type' =>array('graphic','video','web'),'posts_per_page' => 1 ));
で各カスタム投稿タイプのスラッグを拾って来ているつもりですが何か足りないでしょうか?
各カスタム投稿タイプはarchive-.◯◯◯phpで作成しています。
worksという固定ページに表示させたいです。
カスタム投稿タイプのスラッグは
works/graphic でも
graphic だけでも構いません。
また、worksのページに関しては固定ページでもarchiveでも構いません。

###発生している問題・エラーメッセージ
問題→ページ送りが出来ない

エラーメッセージ エラーコード→WP_Query Object ( [query_vars] => Array ( [page] => 0 [pagename] => works [error] が吐き出されています。

###該当のソースコード

wordpress

1 2<div class="clearfix"> 3 4<?php query_posts( array( 'post_type' =>array('graphic','video','web'),'posts_per_page' => 1 )); ?> 5<?php if (have_posts()) : while(have_posts()) : the_post(); ?> 6 7<div class="works"> 8<div class="worksImg"> 9<?php $img = get_field('img'); if( !empty($img) ): ?><img src="<?php echo $img['url']; ?>" alt="<?php echo $img['alt']; ?>" /> 10<?php endif; ?> 11</div> 12<div class="worksIco"> 13<h3><?php echo post_custom('crient'); ?></h3> 14<p><?php echo post_custom('content'); ?></p> 15</div> 16</div> 17</div><!-- /clearfix --> 18<?php 19// ページングを表示 20if (function_exists('wp_pagenavi')) { wp_pagenavi(); } 21// ループ処理のデータをリセット 22wp_reset_query(); 23?> 24<?php endwhile; endif; wp_reset_query(); ?>

###試したこと
http://webimemo.com/wordpress/1813
https://web-bruno.com/wordpress-multiple-post-archive/

###補足情報(言語/FW/ツール等のバージョンなど)
wordress

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

patapata 1234さん、こんにちは。

以下のコードではいかがでしょうか。

$paged = (get_query_var('paged')) ? get_query_var('paged') : 1; query_posts( array( 'paged' => $paged, 'posts_per_page' => 1, 'post_type' => array('graphic','video','web') ) );

投稿2017/04/21 03:01

lyrica0503

総合スコア96

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

patapata1234

2017/04/21 03:20

lyrica0503さん ご回答ありがとうございます。 ただ、'posts_per_page' => 1,のところを10にしても最新の一件しか取得できないですし、一件の場合でもページ送りが動きません。 他のカスタム投稿タイプで使っているページ送りは動いているのですが。。。
lyrica0503

2017/04/21 04:00

最新の1件しか取得できないとのことですが、以下のコードを入れていただくとどのような数字が表示されるでしょうか。 //1ページあたりの数 <?php echo $wp_query->post_count; ?> //クエリによって見つかった数 <?php echo $wp_query->found_posts; ?>
patapata1234

2017/04/21 05:38

返信遅くなりましたm(_ _)m どちらも「1」が吐き出されます。
lyrica0503

2017/04/21 05:49

調査ありがとうございます。 その場合、クエリ発行後の記事(投稿)が1件しか 存在しないのではないかと思うのですが、登録されている記事(投稿)は 1件以上存在しているのでしょうか。 もし存在しているのであればpost_typeを配列ではなく、 1つにして実行してみてください。 また上記コードはquery_posts実行後に出力していただけたでしょうか。 併せてご確認をお願いします。
patapata1234

2017/04/21 06:09

query_postsの上に配置する事で下記のメッセージが吐き出されました! //1ページあたりの数 1 //クエリによって見つかった数 7 その他にわちゃわちゃしてたらいつの間にか表示及びページ送りも無事に動き出しました(^o^;) 原因は分かりませんが。。。
lyrica0503

2017/04/21 06:12

原因が分からないのは少し気持ち悪いですが、思っていた動作になったようで何よりです。今後も良い WP LIFEを~^^/
patapata1234

2017/04/21 07:47

確かにモヤモヤは残りますが、とりあえず解消できて良かったです(^o^) 突然の質問に対応していただきありがとうございましたm(_ _)m また何かありましたらよろしくお願いいたします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問