PHPを動作させてくれるWordPressプラグイン「code-snippets」の書き方を、PHP初心者の管理人が備忘録として残します。
目次(クリックでジャンプ)
基本書式
最初と最後のphpのタグ「<?php」と「?>」はいらない
function 関数名(引数)
{
処理;
return 返り値;
}
add_shortcode(‘呼び出し名’,’関数名’);
これで動く
htmlを出力する
失敗例
波カッコの前後で一旦phpを切って、その間に普通にhtmlを書けば良いのかと思ったが…
function 関数名(引数)
{
?>
ここにhtmlを書く
<?php
}
add_shortcode(‘呼び出し名’,’関数名’);
これだけではダメぽ
成功(ヒアドキュメント)
htmlを表示させるには「ヒアドキュメント」で記述した(文字列)変数をreturnする
例えば「これはヒアドキュメントのテストです」と表示させたい場合
code snippetでの記述
function hereDocTst211107()
{
$string=<<<eot
これはヒアドキュメントの表示テストです。
eot;
return $string;
}
add_shortcode(‘spt_hereDocTst211107′,’hereDocTst211107’);
太字の部分がヒアドキュメントで、改行も含めてそのまま出力してくれる
記事での引用
「[spt_hereDocTst211107]」と記事中で記述
phpでの書き方との違い
ショートコードに追加する記述以外にも違いがあって、生のphpではechoで表示させれば良い
<?php
function hereDocTst211107(){
$string=<<<eot
これはヒアドキュメントのテストです
eot;
echo $string;
}
hereDocTst211107();//同一ファイル内での関数の呼び出し
?>
ショートコードでは「return」で返さないといけないみたい
制作の流れ(2021.11.7版)
元php作成
関数本体と呼び出しを入れたphpファイルを作成し、ブラウザで動作を確認
<?php
function hereDocTst(){
$string=<<<eot
これはヒアドキュメントのテストです
eot;
echo $string;
}
hereDocTst();//同一ファイル内での関数の呼び出し
?>
ピンクの部分を後でcode snippetに移植する
snippet準備
ショートコード名を決めて、code snippetのテンプレを用意する
*
add_shortcode(‘ショートコード名’,’関数名’);
関数名は先程作成したphpの関数名を使う
コピペと調整
「*」の位置にピンク色の部分をコピペして、「echo」を「return」に書き換える
function hereDocTst(){
$string=<<<eot
これはヒアドキュメントのテストです
eot;
return $string;
}
add_shortcode(‘spt_hereDocTst’,’hereDocTst’);
完成♪
activateする
snippetのエディット画面で「activate」するのを忘れずに!
引数を使う場合
*学習中のため、間違っている可能性があります
ショートコードは引数を配列として受け取るので、引き渡したいパラメータが複数ある場合も、引数は配列一つだけにして受け取った後で配列の要素として取り出して処理する
複数の数の積を出力する関数をショートコード化する場合
function seki($val){//引数は配列「$val」一つだけ
$ans=1;
for($i=0;$i<count($val);$i++){
$ans=$ans * $val[$i];//配列$valの要素として取り出し
}
return $ans;
}
add_shortcode(‘spt_seki’,’seki’);
呼び出すときは
[spt_seki 2 3]や[spt_seki 1 2 3 4 5]
のように書く
外部関数を使う
外部のphpをincludeする
プラグインの作者様に
感謝感謝感謝