ショートコードの起動
functions.phpを触ってショートコードを動かしてみた。下の1行がそれ。
ショートコード作ってみた!
「ショートコード作ってみた!」と表示されているはず。実際には下のように書いてある。ただし、ショートコードが動作しないようにカッコは全角文字で書いてあるので、コピペするときは注意。
1 |
[shortcode_test_1] |
functions.phpはこのようにした。
1 |
function shortcode_test_1() {<br /> return "ショートコード作ってみた!";<br />}<br />add_shortcode('shortcode_test_1', 'shortcode_test_1'); |
「ショートコード」でググるとやり方はすぐにわかるのだけれど、意外な落とし穴がfunctions.phpの格納場所。(WordPressのインストールフォルダ)/wp-content/themes/(テーマ名) の下にあるfunctions.phpを編集すること。同じ名前のファイル名が他のフォルダにもあり、それをイジるとWordPress全体が動かなくなってしまう。
もう一つの方法は、WordPressのメニュー「外観」→「テーマの編集」で、画面右側の「テーマファイル」から「テーマのための関数(functions.php)」を選ぶ。いずれにしても、functions.phpを触るときはバックアップが必須。
引数付きのショートコード
次はショートコードに引数を渡す例。引数のデフォルト値は関数内で定義している。
1 |
function shortcode_test_2($atts) {<br /> $atts = shortcode_atts(array(<br /> "name" => "名無し",<br /> "num" => -1<br /> ),$atts);<br /> return $atts['name']."さんの出席番号は".$atts['num']."です";<br />}<br />add_shortcode('shortcode_test_2', 'shortcode_test_2'); |
引数を指定しないと関数内のデフォルト値が使われる。このように書くと、
1 |
[shortcode_test_2] |
こうなる
名無しさんの出席番号は-1です
引数を指定すると、
1 |
[shortcode_test_2 name="山田太郎" num=25] |
こうなる
山田太郎さんの出席番号は25です
ショートコードのPHP経由でPythonを呼び出す
ショートコードからPythonを呼び出してみた。まず、Pythonのコードはこんな感じ。1行目はこのサーバー(CoreServer)でPython3を動かすためのおまじない。
1 |
#!/usr/local/bin/python3<br />print("I am PYTHON!!")<br />print("Called from PHP.") |
呼び出す側のショートコードの関数はこれ。Pythonの出力の1行ごとが文字列の配列になって返ってくるはず。($commandの中のxxxxはサーバー内のディレクトリ名)
1 |
// Pythonの起動<br />function call_python($atts) {<br /> $command="python3 ~/public_html/xxxx/".$atts['file'];<br /> exec($command,$output);<br /> return $output[0]."<br>".$output[1];<br />}<br />add_shortcode('call_python', 'call_python'); |
ショートコードを動かすと、
1 |
[call_python file="pytest.py"] |
こうなる
I am PYTHON!!
Called from PHP.
Called from PHP.
Pythonが出したデータが届いている。
コメント