wordpress php ウィジェットを使用していますが、Wordpress ショートコードを処理できません。php はショートコードを処理する代わりにレンダリングするだけです。これが私がしたことです
アクティブなテーマの function.php ファイルにフィルターを追加しました
add_filter('widget_text', 'shortcode_unautop'); add_filter('widget_text', 'do_shortcode'); // Allow shortcodes in php code widget add_filter('widget_execphp', 'shortcode_unautop'); add_filter('widget_execphp', 'do_shortcode');
phpウィジェットに以下を追加
<?php $id = get_the_ID(); $amazon_product_asin_value = get_post_meta($id, 'amazon_product_asin', true); echo do_shortcode('<div> [amazon asin=' . $amazon_product_asin_value . '&template=buynowamazon_widget&chan=default] </div>'); ?>
私もdo_shortcodeなしで試してみましたが、同じ結果でした。
2 のショートコードを正しく出力する
[amazon asin=B008I20FT8&template=buynowamazon_widget&chan=default]
これを標準のテキストウィジェットに入力するだけでうまくいきます
ショートコードを生成する Amazon Link プラグインを使用しています
何か案は?