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

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

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

if文とは様々なプログラミング言語で使用される制御構文の一種であり、条件によって処理の流れを制御します。

WordPress

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

PHP

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

Q&A

解決済

1回答

1165閲覧

function.phpで条件分岐

退会済みユーザー

退会済みユーザー

総合スコア0

if

if文とは様々なプログラミング言語で使用される制御構文の一種であり、条件によって処理の流れを制御します。

WordPress

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

PHP

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

0グッド

1クリップ

投稿2017/10/26 04:36

###前提・実現したいこと
WordPressでウェブスクレイピングを行おうとしています。
表示している固定ページごとに情報を抽出するURLの変更を行いたいのですが
どうしたら良いでしょうか?
該当のソースコードはfunction.phpに
表示は固定ページにショートコードを書いて行っています。

###発生している問題・エラーメッセージ

条件分岐がうまくいかずelseの内容が表示される

###該当のソースコード require_once("phpQuery-onefile.php"); if(is_page(‘1’)){ $html = file_get_contents(“URL1”); }elseif(is_page('2')){ $html = file_get_contents("URL2”); }else{ $html = file_get_contents("URL3”); } //ショートコード function shortcode() { global $html; return phpQuery::newDocument($html)->find(“#id名”)->text(); } add_shortcode('shortcode1’, 'shortcode');

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

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

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

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

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

yambejp

2017/10/26 04:42

「is_page(‘1’)」の1を囲んでいるデリミタが変な全角文字をつかっていませんか?
退会済みユーザー

退会済みユーザー

2017/10/26 06:48

ところどころで全角文字が入っていました。申し訳けありません。
kei344

2017/10/26 08:42

まだ質問が「受付中」になっていますが、いったん「解決済」にされてはいかがでしょうか。
kei344

2017/10/26 08:43

↑すみません、無視してください。
guest

回答1

0

ベストアンサー

ところどころで全角文字が入ってますが、実際の記述はどうなんでしょうか?
以下は全角部分を半角に変えました。

require_once("phpQuery-onefile.php"); if(is_page('1')){ $html = file_get_contents("URL1"); }elseif(is_page('2')){ $html = file_get_contents("URL2"); }else{ $html = file_get_contents("URL3"); } //ショートコード function shortcode() { global $html; return phpQuery::newDocument($html)->find("#id名")->text(); } add_shortcode('shortcode1', 'shortcode');

追記
単純にこうすれば良いんじゃないかと思います。

function shortcode() { require_once("phpQuery-onefile.php"); if(is_page('1')){ $html = file_get_contents("URL1"); }elseif(is_page('2')){ $html = file_get_contents("URL2"); }else{ $html = file_get_contents("URL3"); } return phpQuery::newDocument($html)->find("#id名")->text(); } add_shortcode('shortcode1', 'shortcode');

投稿2017/10/26 05:01

編集2017/10/26 07:41
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

退会済みユーザー

退会済みユーザー

2017/10/26 06:50

お手数おかけして申し訳けありません。 直していただきありがとうございます。 半角に書き直していただいたコードでもやってみましが 解決いたしませんでした...
退会済みユーザー

退会済みユーザー

2017/10/26 06:58

>解決いたしませんでした. とは? もう少し具体的に。 エラーが出てるならエラー内容を質問に追記してください。 何もエラーが表示されないならデバッグモードで確認してみてください。
退会済みユーザー

退会済みユーザー

2017/10/26 07:09

申し訳けありません。 define('WP_DEBUG', true);にしてデバッグモードにしたのですが エラー文は表示されずに制作したページが表示されました。 条件分岐がうまくいかずelseの内容が表示される状態です。
退会済みユーザー

退会済みユーザー

2017/10/26 07:34

>elseの内容が表示される状態です。 とは? コードがそのまま表示されるという意味ですか?
退会済みユーザー

退会済みユーザー

2017/10/26 07:55

if(is_page('1')){ $html = file_get_contents("URL1"); }elseif(is_page('2')){ $html = file_get_contents("URL2"); else{ $html = file_get_contents("URL3");⇦どのページもここの結果が反映されます }
退会済みユーザー

退会済みユーザー

2017/10/26 07:57

ありがとうございます。 訂正していただいたコードでできました。 もしよろしければショートコードを複数使用する場合も教えていただけないでしょうか?
退会済みユーザー

退会済みユーザー

2017/10/26 08:06

>もしよろしければショートコードを複数使用する場合も教えていただけないでしょうか? 複数使用して何をしたいのでしょうか?これでは分かりません。 複数使用の意味をもう少し具体的に書いてください。 本件は一応解決したなら別で質問していただいた方が良いと思います。
退会済みユーザー

退会済みユーザー

2017/10/26 08:25

抽出したい箇所が複数ありまして phpQuery::newDocument($html)->find("#id名1")->text(); phpQuery::newDocument($html)->find("#id名2")->text(); phpQuery::newDocument($html)->find("#id名3")->text(); といた様に使用したいです。
退会済みユーザー

退会済みユーザー

2017/10/26 08:31

それをどう出力したいのか別の質問で詳細を書いてください。
退会済みユーザー

退会済みユーザー

2017/10/26 08:34

かしこまりました。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問