質問: ショートコード関数を直接呼び出して$ attsを渡す方法 media library categories プラグインを使用しています。あまりドキュメントがないので、実装する方法は[mediacategories categories="6"]というショートコードを使うことにしました。これをテーマテンプレートに直接実装したいです。だから私は試してみました:<?php if(function_exists(do_shortcode('[mediacategories categories="6"]'))) { ?> <h1>inspiration</h1> <?php do_shortcode('[mediacategories categories="6"]'); } 私はまた関数を直接実装しようとしましたが、関数がそれらを使用するために$ attsを正しく渡すことができませんでした。
回答: 私は通常、私のショートコードコールバックにこのようなセクションを追加します。if (is_array($atts)) { extract(shortcode_atts(array( 'primary_att' => 'primary_default', ... ), $atts)); } else { $primary_att = $atts; } これにより、 'primary'属性を(配列の中にラップせずに)直接primary_attを関数に渡すことができます。それでmediacategories_func(6);。