カスタムテーマに新しいショートコードを登録しようとしています。
Functions.phpで私は次のように基本的なテスト関数を作成しました
function get_second_image($atts) {
echo ‘test’;
}
真下に登録
add_shortcode( ‘case_study_second_image_sc’, ‘get_second_image’ );
WYSIWYGエディタを使用して、私はショートコード[case_study_second_image_sc]を挿入しますが、それは単に生のコードとしてページに表示されます。
私はを使ってページコンテンツを呼び出しています
<?php the_content(); ?>
テンプレートファイルで。
他のSE質問からの情報に基づいて、私は自分のテーマのファイルで追加または削除のフィルタ機能を探しましたが、邪魔になるようなものはないようです。
必ず引用符を使用してください。 ' または " カーリー引用符ではなく ‘、 ’、 “または ” 文字列用です。
また、ショートコードはその出力を返すべきで、エコーはしません。
WordPressがコールバックなしでショートコードを見つけると、ショートコードタグを表示されたとおりに表示します。 [case_study_second_image_sc]
。
ショートコードタグ‘case_study_second_image_sc’
と関連する コールバック‘get_second_image’
はPHPによって定数として解析されます。これは、私たちのショートコードに有効なショートコードタグやコールバック関数がなく、WPがショートコードをユーザーが入力したとおりに出力することを意味します。
エラー報告をオンにすると、これらの扱いにくいエラーを見つけるのに役立ちます(コピー/貼り付けコードに中引用符が表示され、一部のエディタでは引用符を区別するのが難しい場合があります)。
Use of undefined constant ‘case_study_second_image_sc’ - assumed '‘case_study_second_image_sc’' Use of undefined constant ‘get_second_image’ - assumed '‘get_second_image’'
こちらのドキュメントを参照してください https://codex.wordpress.org/Shortcode_API 。あなたの関数はあなたがショートコードを置き換えたい値を返す必要があります。 'echo
'は何も表示しません。あなたはreturn 'test'
する必要があります。コンテンツにテキスト 'test
'を挿入します。
上記のリンクのドキュメントから(強調を追加):
The_contentが表示されると、ショートコードAPIは「[myshortcode]」などの登録済みショートコードを解析し、属性とコンテンツがある場合はそれらを分離して解析し、対応するショートコードハンドラ関数に渡します。ショートコードハンドラによる戻された(エコーされていない)の文字列は、ショートコード自体の代わりに投稿本文に挿入されます。
お役に立てれば。