WordPress に JavaScript を埋め込む

programming WordPress

WordPress で作成したページに JavaScript (HTML) を埋め込む方法についてまとめておきます。
環境: レンタルサーバー(ConoHa VPS)、WordPress 5.X

背景 ~ 自分のサイトに機能を追加しよう!

WordPress でサイトを作っています。
サイトを作っていると、作ったページの記事に何か機能を追加して、サイトをより便利にしたくなることがあります。たとえば、デジタル時計などといったものです。

JavaScript をいくらか知っているのであれば、サーバ側に複雑な処理を入れるのではなく、簡単にテキストボックスやボタンなどを JavaScript で作ってしまって、クライアント側で実行するようにすると、とても楽です。

当初、WordPress の編集画面(「テキスト」タブのクリック後の画面)で、JavaScript や HTML を直接書けば動くのかと思い、記事中に JavaScript のソースを書いてみましたが、うまく動きませんでした。
そこで、JavaScript が動く HTML ファイルを別途作成し、ページから参照するよう設定したところ、動くようになりました。
ということで、WordPress で JavaScript を動かす手順についてまとめ、公開しておくことにします。

事例 ~ 実際に JavaScript を埋め込んでみた例

事例をお見せしたほうが早いので、以下に一例を示します。
たとえば、このような感じになります。

※ まずは一番簡単なデジタル時計としてみました。JavaScript を使うことで、クライアント側で動的に動かすことが可能になります。
設置にあたっては、欄の位置や JavaScript 内の文字サイズや文字の位置など、以下のサンプルや記載例で調整してみてください。

設定手順 ~ JavaScript の埋め込み

① 別途、ブラウザで単独で動く HTML/JavaScript を作成しておきます。
テスト用のサンプルとして、末尾に HTML ファイルの例をアップしておきますので、javascript_clock1.html 等の名前で保存してください。
② WordPress の編集画面で、「メディアを追加」→「ファイルをアップロード」→「ファイルを選択」を順次クリックし、①の HTML (JavaScript) を選択し、アップロードします。
③ アップロードした直後の画面で、「ファイルのURL:」となっている欄に記載された URL をコピーし、パソコンなどにいったん保存しておきます。
④ 編集画面に戻り、「テキスト」タブをクリックします。
⑤ WordPress の記事の編集画面でテキストを表示させ、以下を参考に、<iframe> タグを挿入します。
<iframe width=”400px” height=”100px” src=”https:…/javascript_clock1.html” scrolling=”auto” frameborder=”no”></iframe>
※ ここで、src=”” としたところは、③の URL となるよう修正してください。
※ また、width, height などは表示される幅、高さに対応しています。サイトのデザインに応じて調整してください。

→ これで完了です!

まとめ

WordPress 上で JavaScript を動かすことが可能になりました。
JavaScript に限らず、HTML で作ったグラフや表などを貼りつけて活用することも可能です。

この手法が使えるのであれば、別途、Linux サーバーの Python を使って、指定時刻、指定場所に HTML ファイルを自動生成するよう設定しておき、WordPress の各ページからはその結果を参照する、といった使い方も簡単に実現できそうです。

なお、今回の応用例として、WordPress の記事内に「お絵描きアプリ」や「回路図」などを埋め込んでみた事例を、下記の関連リンクなどにまとめています。もし関心があるようでしたら、参考にしてみてください。

関連リンク
・ HTML ビューア 【JavaScript】
・ ネット上のライブカメラの動画を自作のHTMLに埋め込む
・ WordPress のブラウザタブの設定が反映されないとき
・ ブラウザで動くお絵描きアプリ 【JavaScript】
★ サイトのページに、「お絵描きアプリ」を埋め込んでみた事例です。
・ LED を ON/OFF する 【Raspberry Pi & Python】
★ サイトのページに、HTML ファイルで作った「回路図」を埋め込んでみた事例です。
当初、ベクター画像である “*.svg” ファイルをサイトにアップしようとしたところ、WordPress ではアップロード自体ができませんでした。そこで、SVG ファイルを埋め込んだ HTML ファイルを作成し、アップロードしています。これにより、特に機能を追加することなく、拡大しても図形の崩れのないベクター画像を WordPress のページに埋め込むことが可能となっています。

現在のところ、表示サイズは数値で指定しています。この結果、スマートフォンなどデバイスを変更するとレイアウトが変わる点は、確認しておくのがベターといえそうです。

サンプルコード: javascript_clock1.html HTML/JavaScript デジタル時計

<!DOCTYPE html>
<html>
<head></head>

<script> 
function two_digits1( n0 ) {
    var ret1;
    if( n0 < 10 ) { ret1 = "0" + n0; } 
    else { ret1 = n0; }
    return ret1;
} 

function date0() {
    var date1 = new Date();
    var yy0 = two_digits1( date1.getFullYear()   );
    var mm0 = two_digits1( date1.getMonth()+1 );
    var dd0 = two_digits1( date1.getDate() );
    var dy0 = two_digits1( date1.getDay() );
    var yyyymmdd1 = yy0 + "/" + mm0 + "/" + dd0;
    document.getElementById("date1").innerHTML = yyyymmdd1;
} 

function clock0() {
    var date1 = new Date();
//  var yy0 = two_digits1( date1.getFullYear()   );
//  var mm0 = two_digits1( date1.getMonth()+1 );
//  var dd0 = two_digits1( date1.getDate() );
//  var dy0 = two_digits1( date1.getDay() );
    var hh1 = two_digits1( date1.getHours()   );
    var mm1 = two_digits1( date1.getMinutes() );
    var ss1 = two_digits1( date1.getSeconds() );
    var hhmmss1 = hh1 + ":" + mm1 + ":" + ss1;
    document.getElementById("clock1").innerHTML = hhmmss1;
    date0(); 
} 
setInterval('clock0()',1000);

window.onload = function(){ 
   clock0(); 
} 

</script> 

<body style="color:#ffffff; background-color:#111199;" > 
<div style="margin-left:10px; margin-top:10px;" >
<span id="clock1" style="font-size:50px;"></span><span id="date1" style="margin-left:20px; " ></span>
</div> 
</body>

</html>

★ よく使う関数はコードに埋め込み、コメントアウトしています。必要により、差し替えて使ってください。

タイトルとURLをコピーしました