用函数覆盖插件.php

时间:2011-08-18 作者:Jason

add_action(\'wp_head\',\'add_gpp_gallery\');
function add_gpp_gallery() {
    if( ( is_single() || is_page() ) && ( !is_page_template(\'page-blog.php\') ) ){
        remove_shortcode(\'gallery\', \'gallery_shortcode\');
        add_shortcode(\'gallery\', \'gpp_gallery_shortcode\');
    }
}
大家好,我从插件的核心函数文件中提取了上述函数,我希望将其更改为仅替换自定义帖子类型上的WP默认库。因此,我将上面的if语句更改为:

if (is_single() && is_post_type(\'post_type\'){
所以我修改了它,并将其应用到我的函数中。php-但我收到一个错误,说明我无法重新声明add\\u gpp\\u gallery

如何在不接触插件代码的情况下重写插件的功能?

谢谢

EDIT

我试过:

remove_action( \'wp_head\', \'add_gpp_gallery\' );
add_action(\'wp_head\',\'jason_add_gpp_gallery\');
function jason_add_gpp_gallery() {
    if ( is_single() && is_post_type(\'listings\') ){
        remove_shortcode(\'gallery\', \'gallery_shortcode\');
        add_shortcode(\'gallery\', \'gpp_gallery_shortcode\');
    }
}
我犯了一个致命的错误-

致命错误:对未定义函数的调用是/home/hostspro/public\\u html/movemaine中的\\u post\\u type()。com/wp内容/主题/movemaine/功能。php第269行

EDIT #2

我交叉连接了我的函数,忘记了更改is\\u post\\u类型。以下代码正在运行,感谢您的帮助

remove_action( \'wp_head\', \'add_gpp_gallery\' );
add_action(\'wp_head\',\'jason_add_gpp_gallery\');
function jason_add_gpp_gallery() {
    if ( is_single() && \'listings\' == get_post_type() ) {
        remove_shortcode(\'gallery\', \'gallery_shortcode\');
        add_shortcode(\'gallery\', \'gpp_gallery_shortcode\');
    }
}

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

你可以change the name of add_gpp_gallery function 在回调和声明中都可以避免原始和克隆之间的冲突。

像这样的。。。

add_action(\'wp_head\',\'jason_add_gpp_gallery\');
function jason_add_gpp_gallery() {
    if ( is_single() && \'your_post_type\' == get_post_type() ) ){
        remove_shortcode(\'gallery\', \'gallery_shortcode\');
        add_shortcode(\'gallery\', \'gpp_gallery_shortcode\');
    }
}
。。。应该对你有用。

附加功能:您可以使用remove_action() 如果需要。

结束

相关推荐

Integrating plugins in themes

我找不到讨论这个的帖子,所以开始这篇。我目前正在为3.1+开发一个相当复杂的主题,我的意思是,除了样式和常规的前端功能之外,我还在主题的核心包括后端和前端的插件。因此,为了使这一点更有条理,我将其分为三个问题:集成插件是一种常见的做法吗</自动更新主题/插件有什么影响/复杂之处</在不破坏现有功能的情况下,包含每个插件的最佳方式是什么