我希望能够在图像标题中添加短代码。我通过修改媒体成功地做到了这一点。php文件,在返回之前包含以下内容。
$atts[\'caption\']= do_shortcode($atts[\'caption\']);
它工作得很好,但我相信有更好的方法,因为我不想修改媒体。php每次我更新WP。我希望能够在图像标题中添加短代码。我通过修改媒体成功地做到了这一点。php文件,在返回之前包含以下内容。
$atts[\'caption\']= do_shortcode($atts[\'caption\']);
它工作得很好,但我相信有更好的方法,因为我不想修改媒体。php每次我更新WP。标题短代码属性与默认值合并使用shortcode_atts
类似于so的功能(请参见中的源media.php
):
$atts = shortcode_atts( array(
\'id\' => \'\',
\'align\' => \'alignnone\',
\'width\' => \'\',
\'caption\' => \'\',
\'class\' => \'\',
), $attr, \'caption\' );
所以第三个$shortcode
param与的值一起使用\'caption\'
.正如你在shortcode_atts
源代码,这意味着过滤器
在您的情况下,您必须执行以下操作:
add_filter("shortcode_atts_caption", function($atts) {
if (isset($atts[\'caption\'])) {
$atts[\'caption\'] = do_shortcode($atts[\'caption\']);
}
return $atts;
});
请注意:如果标题将包含短代码\'caption\'
这将导致无休止的循环。这可以避免在调用之前删除筛选器do_shortcode
标题上:
function my_caption_shortcode($atts) {
if (isset($atts[\'caption\'])) {
// avoid endless loop
remove_filter( current_filter(), __FUNCTION__);
// apply shortcodes
$atts[\'caption\'] = do_shortcode($atts[\'caption\']);
// restore filter
add_filter(current_filter(), __FUNCTION__);
}
return $atts;
}
add_filter("shortcode_atts_caption", "my_caption_shortcode");
是否可以在帖子/页面内容区域之外调用快捷码?我试图用以下代码将其添加到wp\\U页脚,但它返回字符串:add_shortcode(\'eps_pop\', \'init\'); function indtable_display_front_end($atts ) { global $post; extract( shortcode_atts( array( \'id\' => \'\' ), $atts ) );&#x