WordPressのClassic Editorでページ(Page)あるいはBlogの投稿(Post)にJavaScriptを追加する方法のメモになります。
Google ChartsのJavaScriptで描画したグラフをWebページに貼り付ける簡単な方法を調べていました。
WordPressのBlogへの投稿には、最近、Classic EditorのTextタブを利用していますが、JavaScriptをClassic EditorのText入力欄にそのまま入力してもJavaScriptとしてブラウザで処理されません。
少し検索して調べ、こちらのリンクの方法を試しました。試した方法は Method 3. Adding Javascript Code Inside WordPress Posts or Pages Using a Plugin に記載されていた方法です。
1. Code Embedプラグインをインストールし、有効化(Activate)します。Classic Editorプラグインをインストールしていなければ、こちらもインストールし、有効化(Activate)します。
2. Classic Editorのテキスト入力ページ右上の表示オプション(Screen Options)をクリックし、
カスタムフィールド(Custom Fields)のチェックボックスにチェックを入れます。
3. Classic Editorのテキスト入力欄の下にあるカスタムフィールド(Custom Fields)で「カスタムフィールドを追加(Enter new)」をクリックします。
4. カスタムフィールド(Custom Fields)の名前(Name)の欄にCODEで始まる文字列を入力します。値(Value)の欄には追加するJavaScriptを入力します。名前(Name)と値(Value)を入力したら「カスタムフィールドを追加(Add Custom Field)」をクリックし、カスタムフィールドを追加します。
下の図の例では、名前(Name)の欄にCODEGoogleLineChartExample1を入力し、値(Value)の欄に表示したいGoogle ChartsのJavaScriptを入力しています。
このブログでは、Google Chartsの下記のサンプルコードを値(Value)の欄に入力しました。下記のJavaScriptのサンプルコードはidがcurve_chartのHTML要素を参照しています。
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script> <script type="text/javascript"> google.charts.load('current', {'packages':['corechart']}); google.charts.setOnLoadCallback(drawChart); function drawChart() { var data = google.visualization.arrayToDataTable([ ['Year', 'Sales', 'Expenses'], ['2004', 1000, 400], ['2005', 1170, 460], ['2006', 660, 1120], ['2007', 1030, 540] ]); var options = { title: 'Company Performance', curveType: 'function', legend: { position: 'bottom' } }; var chart = new google.visualization.LineChart(document.getElementById('curve_chart')); chart.draw(data, options); } </script>
5. Classic Editorのテキスト入力欄に下記のように入力すると、
{{CODEGoogleLineChartExample1}}
<div id="curve_chart" style="width: 100%; height: 500px;"></div>
下の図のようなグラフが表示されます。
下記のコードがカスタムフィールド(Custom Fields)の値(Value)の欄に入力したJavaScriptに置き換わり、
{{CODEGoogleLineChartExample1}}
下記のコードを入力した位置にグラフが表示されます。ここで、idにはGoogle Chartsを使用したJavaScriptのgetElementById(‘###’)で指定した文字列###を指定します。今回の例ではidはcurve_chartになります。描画領域の幅と高さは下記のコードのwidthとheightで指定します。
<div id="curve_chart" style="width: 100%; height: 500px;"></div>