如何扩展插件的短码缺省值?

时间:2013-08-27 作者:SpencerDub

我知道这更适合插件的官方支持线程,但开发人员似乎没有阅读论坛。

我正在使用Standout CSS3 Buttons plugin 通过我的网站周围的快捷码添加按钮。短代码中有一个可选参数,cssclass, 它允许您为按钮指定自定义类。因为我的网站是建立在龙门框架上的,它已经有了.button 类,我只想声明cssclass="button" 在短代码中,让门架的CSS覆盖它。不幸的是,当我这样做时,插件似乎无法识别它,当页面加载时,按钮没有.button

如果,而不是cssclass="button", 我指定插件定义的类,例如"button-pinterest""button-rss", 按钮更新得很好,反映了该类和适当的样式。这个插件似乎正在剥离任何自定义类——这似乎违背了提供自定义CSS类的目的。

您可以在页面上看到插件生成的按钮here, 在侧边栏中。现在,它正在使用.button-pinterest 课堂上,我想.button 而不是类。

我没有PHP技能来查看插件并找出如何让它添加我在短代码中指定的类。有没有人可以帮我看一下,并帮我添加自定义类?

1 个回复
最合适的回答,由SO网友:fuxia 整理而成

您可以劫持短代码并使用自己的附加逻辑。

未测试的示例代码:

add_action( \'after_setup_theme\', function()
{
    // Replace the plugin shortcode handler with your own.
    add_shortcode( \'standout-css3-button\', function( $atts, $content = NULL )
    {
        // Let the plugin make the button and store the result.
        $button = scss3button( $atts, $content );

        // No custom class, stop.
        if ( empty ( $atts[\'cssclass\'] ) )
            return $button;

        // Inject your own class, and add a white space as class separator.
        return str_replace(
            \'class="\',
            \'class="\' . $atts[\'cssclass\'] . \' \',
            $button
        );
    });
});
顺便说一下:我不会在我的任何网站上使用这个插件。代码让我畏缩。您应该真正考虑在主题中实现所需的按钮,并获得更少更好的代码。

结束

相关推荐

主题定制器不显示wp_head中的保存值(Css)

我一直在学习如何在主题中添加主题定制器功能。使用很少的代码和帮助来源,但最终选择了Codex。我使用的是抄本本身的一个片段,稍加修改以添加更多设置。我所做的唯一一件事就是添加了更多的颜色选项。我还使用Java脚本来显示实时更改。问题:调用设置保存的值并将新值添加到标题中的样式部分的函数不起作用:/似乎它不会使用“get\\u theme\\u mod”提取保存的值(甚至是默认值)有人能看看代码并给我指出正确的方向吗??这是我的功能。php文件。<?php class UnReady