如何在不覆盖自定义代码的情况下更新插件

时间:2014-05-29 作者:Sanjay Nakate

我正在使用水平滚动公告插件来公告标题下方的新闻。我添加了一些自定义代码,如果管理员更改状态显示“否”及其工作状态,可以在某个事件中隐藏滚动新闻公告。在自定义插件之前,如果我将状态显示设置为“否”,则会滚动新闻,并显示文本“无可用公告”。现在的问题是,如果插件自动更新,我的自定义将被新代码覆盖,我只是想知道如何更新插件而不覆盖以前的自定义代码。

下面是我添加了一些自定义代码来隐藏滚动的函数。

<?php
function HSA_shortcode( $atts ) 
{
if ( ! empty($data) ) 
    {
// Scroll new announcement 

}
else   //Hide scrolling bar

    { 
    ?> <style>

.breaking-news{
visibility:hidden;
height:0;
width:0;
opacity:0; 

}

</style>
        /*$what_marquee = $what_marquee . "No announcement available.";
        if($group <> "")
        {
            $what_marquee =  $what_marquee . " Please check this group " . $group;
        }  */
    <?php } 

    return $what_marquee;
}

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

我只是想知道如何更新插件而不覆盖以前的自定义代码。

你没有。

嗯,每次你想更新时,你都会一遍又一遍地做同样的事情。

下载插件

这个插件可能包含一个可以使用的操作或过滤器,但我不知道这个特定的插件。

我敢肯定,你还有另一种选择。您的函数名为HSA_shortcode 所以我假设这是一个短代码回调。Shortcodes can be hijacked. 尝试:

function my_first_shortcode($atts) {
  return \'howdy\';
}
add_shortcode(\'hijack\',\'my_first_shortcode\');
echo do_shortcode(\'[hijack]\');

function my_second_shortcode($atts) {
  return \'hijacked !\';
}
add_shortcode(\'hijack\',\'my_second_shortcode\');
echo do_shortcode(\'[hijack]\');
如果你能找到原来的短代码slug,你可以把你的函数(可能有不同的名字)放在你主题的functions.php 或其他插件,并劫持原始短代码。

function my_HSA_shortcode( $atts ) {
  // ...
}
do_shortcode(\'origslug\',\'my_HSA_shortcode\');
当然,只有在插件作者更改短代码“slug”之前,这才有效,但即使这样,维护的麻烦也会大大减少。

结束

相关推荐

How can I find plugins' slug?

我想知道如何才能找到插件的slug(slug=WordPress用来更新插件和确定哪些插件当前处于活动状态的内部名称)?它通常是插件的文件夹名,但如果插件没有文件夹,则是其文件名(如hello.php)。是否有其他例外情况?大小写字符重要吗</插件的slug是否可以与其文件夹名不同?如果有一个叫做hello的插件呢。php和另一个/您好。php/您好。php