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

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

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

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

PHP

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

Q&A

解決済

3回答

2494閲覧

PHPエラーの確認と修正方法

退会済みユーザー

退会済みユーザー

総合スコア0

WordPress

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

PHP

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

0グッド

0クリップ

投稿2018/03/31 18:05

編集2018/04/02 00:14

WordPressの検索結果ページの書き方を知りたくて質問させて頂きました。
なぜ次の書き方で画面が真っ白になるのか、わかりません。。
どなたか教えてくださいませ。

▼search.php

php

1<?php get_header(); ?> 2 3 <!-- 検索キーワードがないとき --> 4 <?php if ( empty( get_search_query() ) ); ?> 5 <?php get_template_part( 'template-parts/content', 'search-somosomonai' ); ?> 6 7 <!-- 検索キーワードがあるとき --> 8 <?php else; ?> 9 10 <!-- 該当記事あり --> 11 <?php if ( have_posts() ); ?> 12 <main id="primary" class="content-area" role="main"> 13 <div id="posts"> 14 <header class="header"> 15 <h1 class="entry-title"> 16 <?php printf( esc_html__( 'Search Results for: %s', 'dyad' ), '<span>' . get_search_query() . '</span>' ); ?> 17 </h1> 18 </header> 19 <?php while ( have_posts() ) : the_post(); ?> 20 <?php get_template_part( 'template-parts/content', 'search-aru' ); ?> 21 <?php endwhile; ?> 22 </div> 23 </main> 24 25 <!-- 該当記事なし --> 26 <?php else; ?> 27 <?php get_template_part( 'template-parts/content', 'search-nai' ); ?> 28 <?php endif; ?> 29 30 <?php endif; ?> 31 32<?php get_footer(); ?>

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

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

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

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

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

bassbone

2018/03/31 22:18

質問記載のPHPで出力されるHTMLも提供いただけませんでしょうか?繰り返し表示されるというのが具体的にどういうことか知りたいです。
退会済みユーザー

退会済みユーザー

2018/04/01 16:30 編集

失礼しました。ある方のご回答を参考に、質問文を修正いたしました。HTMLは、真っ白、です。。
退会済みユーザー

退会済みユーザー

2018/04/01 23:15

CHERRYさん、ありがとうございます。実はそこに書かれているのはwp-config.phpの編集が必須の様子。ですが、私のレンタルサーバーはその編集ができないのです。その場合、ローカル環境でwp-config.phpを編集すればいい、とのご回答を別の方に頂戴したのですが、その方法はまた道のりがながいため断念。ワガママで恐縮ですけれど、別視点からのアドバイスがもしございましたら、よろしくお願い致します。
CHERRY

2018/04/01 23:36

ところで、このphpファイルは、どのように作成したのですか?
退会済みユーザー

退会済みユーザー

2018/04/02 00:12

ネットにある条件分岐をいくつか参考にして、自分のサイトに合わせて作成してみました。普通はどのように作成するのでしょうか?
guest

回答3

0

まず、Wordpressをいじろうとするなら、

WordPressでのデバッグ こちらを参照し、デバッグモードにすることです。
「真っ白に」なることはなく、的確にエラーメッセージが表示されます。
それを頼りに、情報を探しましょう。

https://wpdocs.osdn.jp/WordPress%E3%81%A7%E3%81%AE%E3%83%87%E3%83%90%E3%83%83%E3%82%B0

投稿2018/04/01 16:06

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

退会済みユーザー

退会済みユーザー

2018/04/01 16:08

ありがとうございます。実はwp-config.phpをいじることができないサーバーなのです。。
退会済みユーザー

退会済みユーザー

2018/04/01 16:12

サーバーのファイルを直接いじること自体ナンセンスです。
退会済みユーザー

退会済みユーザー

2018/04/01 16:27

そうなのですか。ありがとうございます。それしかないものだとばかり思っておりました。すると、wp-config.phpというのは、どこからいじればいいのか、もう一声教えていただけませんでしょうか?
退会済みユーザー

退会済みユーザー

2018/04/01 17:01

自分のPC内にサーバーと同じ環境を作る。 仮想環境だったり、自由にいじれる環境で作業を行い、作業済みのファイルをアップロードします。
退会済みユーザー

退会済みユーザー

2018/04/01 17:10

ああ、なるほど。ローカル環境というやつですね。聞いたことはあります。きゃー!そこから勉強しないといけないのですか!!大変そうなので保留します。。
guest

0

ベストアンサー

2ヶ所ある<?php else; ?>のスペースが両方とも全角スペースのようです。


追記
ベストアンサーをいただいたので、コメント部分での回答もこちらに記載しておきます。

今回のエラーはif文の:(コロン)であるべき部分が;(セミコロン)になっていたのが原因だったようです。

修正内容としてはこの通りでしたが、「PHPエラーの確認方法」としては、Kosuke_Shibuyaさんが回答しているデバッグモードにすることが有効かと思います。

投稿2018/04/01 23:40

編集2018/04/02 01:53
dit.

総合スコア3235

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

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

退会済みユーザー

退会済みユーザー

2018/04/02 00:11

ありがとうございます。質問文を修正しておきました。どうやら今回の原因はそこではないようです。。またお気づきの点がございましたら是非よろしくお願いいたします。
dit.

2018/04/02 01:53 編集

あ、ifの後とelseのとこは;ではなく:だと思います。<?php if ( empty( get_search_query() ) ): ?><?php if ( have_posts() ) : ?><?php else: ?> どちらにしろKosuke_Shibuyaさんの言うように、デバッグモードを有効にできるようにした方が後々いいと思います。
退会済みユーザー

退会済みユーザー

2018/04/02 00:31 編集

できました!とても助かりました。どうもありがとうございます!! 追加で大変恐縮です。後学のためにぜひ教えていただきたいのですけれど、「;」でなく「:」なのは、「else」以外にも何かありますでしょうか? あと、デバックモードというのを有効にしていると、今回のような「全角ミス」「;ミス」などが即座に見つかるのでしょうか?
dit.

2018/04/02 01:54 編集

コロンについて、私もものすごく詳しいわけではなくうまく説明ができないのですがhttps://plugmize.jp/archives/blog/20160817_php_if_while_for_foreach.htmlこちらのサイトの言葉を借りると「そこからブロックが始まることを示す」時に使用するようです。 デバッグモードについて、まずKosuke_Shibuyaさんが紹介しているページにもある通り本番環境で使用することは推奨されていないようです。 (テスト環境で問題が発生せず、本番環境のみで問題が起きるようなら確認のために一時的に使用するくらいはかまわないと個人的には思っていますが。) 有効にすると、エラー、警告、通知がページ上に表示されます。 どのphpの何行目に何かがあるよ という感じの事が英語で出てきます。 今回私の環境で試したところ「Parse error: syntax error, unexpected 'else' (T_ELSE), expecting end of file in /サーバー情報/wp-content/themes/テーマ名/search.php on line 8」となってました。googleで翻訳すると「解析エラー:構文エラー、予期しない 'else'(T_ELSE)」。 ピンポイントでコロンとセミコロンの違いを指摘されたわけではありませんが、条件式のどこかがおかしいということには気づけると思います。 あとはひたすら「参考にしたサイト」との違いを見つけてください。 スペースに関しては今回エラーが出なかったのですが、phpに限らずプログラミングでは「日本語表記部分以外の全角スペース」は不具合の原因になりかねないので、スペースを表示できるテキストエディタを利用するといいと思います。
退会済みユーザー

退会済みユーザー

2018/04/02 01:35

「そこからブロックが始まることを示す」ですか。なるほど。わかりやすいですね。 デバックモードは「ここが半角だよ」ではなく「何行目に何かがあるよ」なのですね。それでも十分便利です。少しやり方を模索してみたいと思います。 ひとまずスペースの件は、Ctl+Fで常に気を付けておきたいと思います。 たびたびのご返信、さわにわざわざ試していただいたこと、誠にありがとうございます。大変勉強になりました。m(_ _)m
guest

0

ここでwhileを使用しているからではないでしょうか。

PHP

1while ( have_posts() ) : the_post(); 2get_template_part( 'template-parts/content', 'search-aru' ); 3endwhile;

投稿2018/04/01 02:01

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

退会済みユーザー

退会済みユーザー

2018/04/01 09:00

ありがとうございます。whileを外に書けばいい、ということでしょうか? 試したところ画面が真っ白になってしまい、何が間違っているのかわからないため、質問をそのように変更させて頂きました。またお手すきの折にご回答いただけたら幸いです。
退会済みユーザー

退会済みユーザー

2018/04/01 10:32

> whileを外に書けばいい、ということでしょうか? いいえ。繰り返し表示したくない要素はwhileループの外に置きましょう、ということです。 > 試したところ画面が真っ白になってしまい、何が間違っているのかわからないため、 おそらく文法エラーが起きているものと思われます。 エラー内容を確認して修正してください。
退会済みユーザー

退会済みユーザー

2018/04/01 15:52

エラー内容の確認と修正が難しいので、その方法か、解決策を知りたくて、質問させて頂いた次第です。またお手すきの折にご回答いただけたら幸いです。
退会済みユーザー

退会済みユーザー

2018/04/01 15:53

今回はwhileの外に置いて、HTMLとPHPを <?php ?> できちんと区別しただけ。なのに、どうして文法エラーが起こってしまうのでしょうか??
退会済みユーザー

退会済みユーザー

2018/04/02 02:14

質問者様はエラー内容が確認できない環境で開発しているようですが、エラー内容をご自分で確認できる環境を作ることを強くおすすめします。 さもなければ、エラーが発生する毎に他人にコードを見てもらわなければならず、大いなる手間です。 PHPで開発をするなら、PHPの基本を学んでおくこと、エラーメッセージを確認できる環境を作ること、が最低限必要です。
退会済みユーザー

退会済みユーザー

2018/04/02 02:20

また、本来の質問から質問内容が大きく変わるのであれば、その経過がわかるように質問文を編集する、もしくは別の質問として質問するほうがベターかと思います。
退会済みユーザー

退会済みユーザー

2018/04/02 08:35

大いなる手間、仰るとおりですね。自分だけの手間ならともかく。このようなレベルの質問だったとは、あとから引け目に感じてしまいました。気を付けます。 質問編集の方法についても、どうもありがとうございます。m(_ _)m
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問