在我在WordPress上的帖子中,我创建了一个未知数量的my_player
类型的短代码,并正确添加了钩子。我想知道是否有某种类型的WordPress功能可以将您的内容传递给短代码名称,它可以为您提供一系列匹配的短代码,其属性由属性名称索引。像我下面的代码...
$matches = get_shortcode_matches($content, "my_player");
for($i = 0; $i < sizeof($matches); $i++)
{
$title = $matches[$i]['title'];
$mp3 = $matches[$i]['mp3'];
$soundcloud = $matches[$i]['soundcloud'];
}
我知道当你使用add_shortcode()
函数为短代码创建钩子时,你可以像我上面那样使用这些索引值,但是我需要有一个函数可以在以后和循环之外访问它们。 WordPress有没有这样的功能?
答案 0 :(得分:3)
有几种方法可以做到这一点: 1.像上面一样编写自己的代码段,在“mu-plugins”文件夹中插入以下内容
// [myplayer attr="your-value"]
function myplayer_func($atts) {
extract(shortcode_atts(array(
'title' => 'something',
'mp3' => 'another something',
'soundcloud' => 'something else',
), $atts));
return "attr= {$attr}";
}
add_shortcode('myplayer', 'myplayer_func');
然后
[myplayer title="something" mp3="another something" soundcloud="something else"]
来自任何地方的任何帖子,包括子域名。 2.您可以使用Shortcoder和Global Content Blocks
等插件答案 1 :(得分:0)
试试这个,
<?php do_shortcode($content); ?>
答案 2 :(得分:0)
我认为你不能使用现有的行动。 [shortcode_parse_atts]没有附加任何事件。 唯一可行的方法是在每个[add_shortcode]相关函数/方法中使用add_action / global。
类似的东西:
function doShortCode($atts, $content=null){
global $my_shortcode_storage;
$my_shortcode_storage['my_shortcode_1'][] = $atts;
}