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

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

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

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

PHP

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

Q&A

1回答

410閲覧

[WordPress] 一覧から詳細ページへのデータの出し方がわからない

DaisukeMori

総合スコア225

WordPress

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

PHP

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

0グッド

0クリップ

投稿2021/04/05 12:15

archive-[スラッグ名].phpからsingle-[スラッグ名].phpへ遷移させて
single-[スラッグ名].phpでその記事のみ出したいのですが、
その条件分岐の書き方がいまいちわかりません。

コード抜粋

php

1$id = get_the_ID(); // 各記事のID ここはechoしたらその記事のIDが出たのでこれで整合かけたい 2... 3<?php if(is_single($id)): ?> // ここで分岐すれば出るかと思いきや何も表示されない

コードはこちら

php

1// archive-[スラッグ名].php 2// こちらは問題ないはずです 3<?php $args = array( 4 'numberposts' => 20, //表示する記事の数の指定 5 'post_type' => 'works' //投稿タイプの指定 6 ); 7?> 8<ul> 9 <?php 10 $posts = get_posts( $args ); 11 if( $posts ) : foreach( $posts as $post ) : setup_postdata( $post ); ?> 12 <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li> 13 <?php endforeach; ?> 14 <?php else : ?> 15 <li>記事はまだありません。</li> 16 <?php endif; 17 wp_reset_postdata(); //クエリのリセット 18 ?> 19</ul> 20

php

1// single-[スラッグ名].php 2<?php 3 $uri = get_theme_file_uri(); 4 $site_url = site_url(); 5 global $post; 6 $id = get_the_ID(); // 各記事のID ここはechoしたらその記事のIDが出たのでこれで整合かけたい 7 8 $paged = get_query_var('paged') ? get_query_var('paged') : 1; 9 $args = [ 10 'post_type' => 'works', // カスタム投稿名 11 'paged' => $paged, 12 'posts_per_page' => 999999999, // 表示する数 13 ]; 14 $wp_query = new WP_Query($args); 15?> 16 17<?php if ($wp_query->have_posts()): ?> 18 <?php while ($wp_query->have_posts()): $wp_query->the_post(); ?> 19 <?php if(is_single($id)): ?> // ここで分岐すれば出るかと思いきや何も表示されない 20 <li class="underline"><a href="javascript:void(0)"><?php the_title(); ?></a></li> 21 <?php endif; ?> 22 <?php wp_reset_postdata(); endwhile; ?> 23<?php else: ?> 24 <p>まだ投稿がありません。</p> 25<?php endif; ?>

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

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

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

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

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

guest

回答1

0

single-[スラッグ名].php
というテンプレートが呼び出されているということは、既にその記事のみが取得されている状態です。

単純に以下のように利用できます。

PHP

1// single-[スラッグ名].php 2<li class="underline"><a href="javascript:void(0)"><?php the_title(); ?></a></li>

投稿2021/04/05 23:40

tabuu

総合スコア2449

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

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

DaisukeMori

2021/04/05 23:54

それでやった場合全ての記事が表示されてしまいます。 その記事のみ出る要件には満たないです。
tabuu

2021/04/06 01:14

>それでやった場合全ての記事が表示されてしまいます。 それはご自身で全ての記事を表示するようにコーディングされているからでしょう? そのコーディングが必須なのであれば質問を編集してください。
tabuu

2021/04/06 01:15

(補足) そのコーディングが必須なのであれば、何か前提条件があるはずですので、 前提条件を質問に追記してください。
KazuhiroHatano

2021/04/06 02:48

色々謎、意図がわからない single-*.phpでメインの記事を表示したいというのに なんでわざわざメインクエリを使わずに サブクエリ作ってループしてるのか? なんでsingle-*.phpでページングしてるのか? posts_per_pageを極大の値にしながらpagedは渡すとか ページングしたいのかしたくないのか? その辺りの意味不明、意図不明な質問のコードを 回答のコードで"全て置き換えれば"いいです
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問