RSSWordPress.orgWordPressの記事内でPHPを実行するショートコード(プラグインではなく)WordPressでこのサイトを作りながら、ショートコードについてあれこれ試行錯誤をしつつ、時代錯誤も繰り返している今日この頃...。そんな中「記事中で任意のPHPコードを動かすのって、ショートコードでも出来るんじゃない?(既存のプラグインを使わずとも)」と思って、やってみたら動いたのでご報告。(執筆時2010.07.WordPress3.0、公開時2011.01.WordPress3.0.4で確認)ソースコードと使い方ソースコード。ショートコードphp_evalの定義。);とりあえず定番な感じでテンプレートの「function.php」へ書き込めば動くはずです。人に親切(?)なソースです。わかる人なら無駄なく短くできますね。(短いソースも下方に置いてみたよ!)記事中でのショートコードの書き方は、次の通り。>は、必ず半角スペースを取って</pre>にして下さい。(このページの表示の都合)ちょっとした思いつきですが、たったこれだけで動くのなら使いたくなる人もいるのでは??特徴と注意点・・・ショートコード内は、必ず<pre>タグで囲み、その中にPHPコードを書くこと。記事の編集は「ビジュアル」でなく「HTML」で書くこと。投稿設定「不正にネスト化したXHTMLを自動的に修正する」のチェックを外すこと。Formattingも必要かも。記事の作成者の権限レベルで、実行するか実行しないか判別している。returnで返した値は、ショートコードのあった場所に出力される。動くかテストしてちょ。テスト今日の日付を表示する下記のコードを実行してみます。"<p><em>今日は「".date("Y年m月j日")."」です。"<p><em>今日は「".date("Y年m月j日")."」です。「2020年02月18日」です。実行するPHPコードに注意して下さいね。うっかり$postを書き換えたりして、その後のページの表示がおかしくなるとかありがちです。読み飛ばしてもいいかもな解説<pre>タグで囲うのが気持ち悪いですが、これがないとPHPコード内の例えば「"」が「&quot;」になるらしくエラーが出て動きません。不正にネスト化したXHTMLを自動的に修正する」のチェックも外すこと。Formattingも必要かも。一応セキュリティ対策で、記事を書いた人の権限レベルによってPHPを実行出来るか決めています。権限レベルとその注意は「WordPressで記事作成者の権限レベルによって動作を変えるには?)」を参考にどうぞ。不特定多数が編集する環境でPHP実行出来ちゃうのはちょっと恐いですよね。充分に管理が行き届く範囲で使って下さいね。ご利用は自己責任にて、充分にテストをして問題がないことを確認して使って下さい。<pre>タグで囲むなどその辺りの文字化け(?)対策が完全なのか若干心配です。問題点や解決策がわかっちゃうエキスパートでステキな人がいましたらぜひ教えて下さい!おまけの短いソース色々省いて、短くしたソース。);もっと短くしたソース(笑)。権限判定も省略したので誰の記事でも実行されます。add_shortcode('php_eval','shortcode_php_eval');ショートコード名はphp_evalじゃなくてもいいけどphpとかありがちのにすると、プラグインなど他のプログラムとぶつかるかも。最後までお付き合いありがとうございます。非推奨のget_the_author_IDをget_the_author_meta(‘ID’)に変えました。コメントをキャンセルメールアドレスが公開されることはありません。過去の記事を一部追加しました。