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

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

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

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

PHP

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

2679閲覧

「wordpress」 function.php から google chart を表示したいです。

blossan

総合スコア154

WordPress

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

PHP

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

1クリップ

投稿2016/12/25 11:01

御世話になります。
wordpressに google chartで自作したグラフを表示したいと思います。
以前こちらの質問サイトで、function.phpにヒアドキュメントでまとめて設定すると良い回答を頂きました。
実際に、google chart で表示できるコードをヒアドキュメントにまとめてみたのですが、文法エラーが出てしまいました。私自身あまりfunction.phpやwordpressに詳しくないため、エラー原因を解読することができませんでした。

「実践したいこと」
wordpressの固定ページに<div>でグラフを表示するidを設定しました。
ショートコードで読み込んだjavascript(グラフ関係)とphp(グラフのデータをデータベースから拾う)のファイルを使って、そのidの中にグラフを表示したいです。

「固定ページ」
php

[shortcode1] <div id="today" style="width:100%;height:150px;"></div>

[function.php]

php

1function shortcode1Func() { 2 3echo <<< EOM 4 5$dsn = 'mysql:host=ホスト名;dbname=データベース名;charset=utf8'; 6 // データベースのユーザー名 7$user = ユーザー名; 8 // データベースのパスワード 9$password = パスワード; 10// tryにPDOの処理を記述 11try { 12 // PDOインスタンスを生成 13 $dbh = new PDO($dsn, $user, $password); 14// エラー(例外)が発生した時の処理を記述 15} catch (PDOException $e) { 16 // エラーメッセージを表示させる 17 echo 'データベースにアクセスできません!' . $e->getMessage(); 18} 19 20 <script type="text/javascript" src="https://www.google.com/jsapi"></script> 21 <script type="text/javascript"> 22 23 google.load("visualization", "1", {packages:["corechart"]}); 24 google.setOnLoadCallback(drawContinuousDateChart); 25 26 function drawContinuousDateChart() { 27 var data = google.visualization.arrayToDataTable([ 28 29 ['分', '通信量'], 30 <?php 31 32 $sql = "SELECT * FROM mtraffics; 33 $stmt = $dbh->query($sql); 34 foreach ($stmt as $row) { 35 echo "['".$row["date"]."',".$row['volume']."],"; //グラフに出力する情報(日付、ランキング数値) 36 } 37 ?> 38 39 ]); 40 41//デザイン変更 42 var options = { 43 //title:'ランキング', //タイトル 44 //width: 1000, //横幅 45 //height: 150, //高さ 46 colors:['#FF0000', '#0000FF'], //文字の色 47 hAxis:{showTextEvery:1},//インデクスの表示 48 //Axis: {direction: -1, minValue: 1}, 49 lineWidth: 1, pointSize: 10, //ラインの横 50 titleTextStyle: { fontSize: 12 }, //文字サイズ 51 legend : { position: 'top'}, //タイトルポジション 52 }; 53 54 var chart = new google.visualization.LineChart(document.getElementById('today')); 55 56 chart.draw(data, options); 57 } 58 </script> 59EOM; 60 61} 62add_shortcode('shortcode1', 'shortcode1Func');

「エラー」
Parse error: syntax error, unexpected '"', expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING)

どのようにgoogle chart をwordpressに埋め込めればよいでしょうか?
google chart のプラグインがあることは知っていますが、jequeryを使ったグラフもあり、外部から作ったファイルをwordpressで読み込ませる方法を知りたいです。
よろしくお願いします。

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2016/12/25 11:05

`$sql = "SELECT * FROM mtraffics;`の閉じ"が足りてません。
toutou

2016/12/25 11:15

echo <<< EOMの使い方ってあってます?
退会済みユーザー

退会済みユーザー

2016/12/25 11:18 編集

それから、WordPressは`functions.php`です。`function.php`ではなく。
guest

回答1

0

ベストアンサー

これで動くでしょうか。
PHPやJavascriptのコードがごっちゃごっちゃになっているので、全体的に書き方を見直したほうがいいと思います。

PHP

1function shortcode1Func() { 2 3$dsn = 'mysql:host=ホスト名;dbname=データベース名;charset=utf8'; 4 // データベースのユーザー名 5$user = ユーザー名; 6 // データベースのパスワード 7$password = パスワード; 8// tryにPDOの処理を記述 9try { 10 // PDOインスタンスを生成 11 $dbh = new PDO($dsn, $user, $password); 12// エラー(例外)が発生した時の処理を記述 13} catch (PDOException $e) { 14 // エラーメッセージを表示させる 15 echo 'データベースにアクセスできません!' . $e->getMessage(); 16} 17 18$output = <<< EOF 19 <script type="text/javascript" src="https://www.google.com/jsapi"></script> 20 <script type="text/javascript"> 21 22 google.load("visualization", "1", {packages:["corechart"]}); 23 google.setOnLoadCallback(drawContinuousDateChart); 24 25 function drawContinuousDateChart() { 26 var data = google.visualization.arrayToDataTable([ 27 28 ['分', '通信量'], 29EOF; 30 31 $sql = "SELECT * FROM mtraffics"; 32 $stmt = $dbh->query($sql); 33 foreach ($stmt as $row) { 34 $output .= "['".$row["date"]."',".$row['volume']."],"; //グラフに出力する情報(日付、ランキング数値) 35 } 36$output .= <<< EOF 37 ]); 38EOF; 39 40$output .= <<< EOF 41//デザイン変更 42 var options = { 43 //title:'ランキング', //タイトル 44 //width: 1000, //横幅 45 //height: 150, //高さ 46 colors:['#FF0000', '#0000FF'], //文字の色 47 hAxis:{showTextEvery:1},//インデクスの表示 48 //Axis: {direction: -1, minValue: 1}, 49 lineWidth: 1, pointSize: 10, //ラインの横 50 titleTextStyle: { fontSize: 12 }, //文字サイズ 51 legend : { position: 'top'}, //タイトルポジション 52 }; 53 54 var chart = new google.visualization.LineChart(document.getElementById('today')); 55 56 chart.draw(data, options); 57 } 58 </script> 59EOF; 60 61return $output; 62} 63add_shortcode('shortcode1', 'shortcode1Func');

投稿2016/12/25 11:18

編集2016/12/25 11:21
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

blossan

2016/12/25 11:49

書き方を勘違いしていました。回答して頂きありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問