所以我有这个插件代码
class WC_List_Grid {

 public function __construct() {
   add_action( 'wp',array( $this,'setup_gridlist' ),20);
 }

 function setup_gridlist() {
  add_action( 'woocommerce_before_shop_loop','gridlist_toggle_button' ),30);
 }

 function gridlist_toggle_button() {?>
                <nav class="gridlist-toggle">
                    <a href="#" id="grid" title="<?PHP _e('Grid view','woocommerce-grid-list-toggle'); ?>"><span class="dashicons dashicons-grid-view"></span> <em><?PHP _e( 'Grid view','woocommerce-grid-list-toggle' ); ?></em></a>
                    <a href="#" id="list" title="<?PHP _e('List view','woocommerce-grid-list-toggle'); ?>"><span class="dashicons dashicons-exerpt-view"></span> <em><?PHP _e( 'List view','woocommerce-grid-list-toggle' ); ?></em></a>
                </nav>
 <?PHP }
}

我想更改gridlist_toggle_button函数的内容.
这就是我计划更改该功能的内容的方式.就像编写另一个函数一样,html与原始函数几乎相同,但是我的更改位.就像是

add_action('woocommerce_before_shop_loop','new_gridlist_toggle_button')
function new_gridlist_toggle_button() {?>
                <nav class="gridlist-toggle">
                    <a href="#" class="grid-view" title="<?PHP _e('Grid view','woocommerce-grid-list-toggle' ); ?></em></a>
                    <a href="#" class="list-view" title="<?PHP _e('List view','woocommerce-grid-list-toggle' ); ?></em></a>
                </nav>
 <?PHP }
}

这样,我就不必直接更改插件文件了

为此,我试图删除其相关的行动.

add_action( 'woocommerce_before_shop_loop',30);

所以我可以使用自己的代码.但我似乎无法删除此操作.到目前为止我已经尝试过了.

方法1:

global $WC_List_Grid    ;
remove_action( 'woocommerce_before_shop_loop',array( $WC_List_Grid,100);

方法2:

function remove_plugin_actions(){
 global $WC_List_Grid   ;
 remove_action( 'woocommerce_before_shop_loop',100); 
}
add_action('init','remove_plugin_actions');

方法3

remove_action( 'woocommerce_before_shop_loop',array( 'WC_List_Grid',100);

他们似乎都没有工作.

通过一些头脑风暴,我认为可能有两个可能的原因.

>它不起作用,因为我要删除的动作不直接附加到钩子上.它的行动在行动中.
>我试图通过functions.PHP来阻止gridlist_toggle_button的输出.但是如果插件在functions.PHP之前加载,那么要被阻挡的函数已经被调用,因此它总是显示输出.

我根本不喜欢OOP.有人可以帮帮我吗?

每当$wc_lg = new WC_List_Grid()被实例化时,它将触发 wp钩子.在设置全局WP类对象之后,实例$wg_lg将自己调用setup_gridlist().它将触发woocommerce_before_shop_loop钩子.每当发生这种情况时,$wg_lg将再次调用一个函数.即gridlist_toggle_button().

I want to change the content of the gridlist_toggle_button function

为什么不在插件中更改它?喜欢覆盖其中的所有内容.

global $WC_List_Grid;

你怎么知道$WC_List_Grid有它的名字?它只是一个类名.它可以在任何名称下实例化,如$foo或$bar.

我假设你在模板的functions.PHP文件中编码.在function.PHP和remove_action()只能在add_action()发生之后才能加载插件.

Important: To remove a hook,the $function_to_remove and $priority
arguments must match when the hook was added. This goes for both
filters and actions. No warning will be given on removal failure.

07001

所以这应该只是为了删除动作,但是这有助于你改变函数内部的内容? :

remove_action(
    'woocommerce_before_shop_loop',array('WC_List_Grid','gridlist_toggle_button'),30
);

请注意,您使用的是优先级100

编辑

我发现do_action(‘woocommerce_archive_description’)发生在archive-product.php和wc-template-functions.php,就在插件中执行woocommerce_before_shop_loop挂钩操作之前.试着用这个:

function remove_plugin_actions(){
   global $WC_List_Grid;
   remove_action( 'woocommerce_before_shop_loop',30); 
}
add_action('woocommerce_archive_description','remove_plugin_actions');

php – WordPress – 删除插件类中定义的操作的更多相关文章

  1. wordpress添加Html5的表单验证required方法小结

    这篇文章主要介绍了wordpress添加Html5的表单验证required方法小结,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  2. iOS设备上的Safari正在加载损坏的图像 – WordPress网站

    有问题的图像是JPEG,我把它们缩小到更小的尺寸.有问题的WordPress网站是响应式的,当我使用移动网络加载网站时就会发生这个问题.无线方面,它没有问题,但在3G/4G上,随机加载的图像,一些被破坏,图像交换位置,所以所有的css和js似乎搞砸了.我正在使用W3缓存来提高速度,但没有任何帮助.有些图像是半灰色,黑色,有时看起来有点破损.这只发生在带有safari浏览器的iOS设备上.其他人面临同样的问题?

  3. android – 移动应用程序的WooCommerce API

    我打算为WooCommerce商店开发原生移动Android应用程序.我在这里查看了他们的RESTapi文档:http://docs.woocommercev2.apiary.io/我已经开始测试了,但是当我做不同的电话时GET/order让我们说它会返回商店的所有订单.有谁知道如何使用他们的API开发最终用户应用程序.例如:PUT/order(为登录用户创建订单)GET/order(获取登录用户

  4. 在我的Android应用程序中从WordPress获取帖子

    我是Android开发的新手,我正在尝试创建一个只显示WordPress网站上的帖子类别和帖子的应用程序.请帮助我.解决方法您要做的是从wordpress创建某种RESTAPI,以返回对您的AndroidHTTP请求的JSON响应.要做到这一点,首先针对Android,您可以参考这篇文章:MakeanHTTPrequestwithandroid然后,对于服务器端(您的wordpress),您将不得

  5. android – 在Iphone Style中切换按钮

    在Android中,切换按钮如下所示–我们可以将其修改为Iphone样式,如下所示–而且,我们可以包括切换按钮的iphone功能,如拖动来切换功能.如何完成这个动作?

  6. 如何在Android中编程切换按钮开启和关闭?

    我需要以编程方式开启Toggle按钮On&关闭.我已经很多,但找不到任何帮助.所以任何帮助将真正的赞赏解决方法您可以使用toggleButton.setChecked(true或false)方法以编程方式使Toggle按钮开启&关闭.

  7. 8个出色的WordPress SEO插件收集

    以下是几个一流的SEO插件列表,它们可以帮助我们提高WordPress站点在搜索引擎中的排名。

  8. 使用jQuery的toggle()方法对HTML标签进行显示、隐藏的方法(示例)

    本文通过示例给大家介绍了使用jQuery的toggle()方法对HTML标签进行显示、隐藏操作的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下

  9. 详解WordPress中用于更新和获取用户选项数据的PHP函数

    这篇文章主要介绍了WordPress中用于更新和获取用户选项数据的PHP函数,分别为对update_user_option()函数和get_user_option()函数用法的讲解,需要的朋友可以参考下

  10. WordPress用户登录框密码的隐藏与部分显示技巧

    这篇文章主要介绍了WordPress用户登录框密码的隐藏与部分显示技巧,需要的朋友可以参考下

随机推荐

  1. PHP个人网站架设连环讲(一)

    先下一个OmnihttpdProffesinalV2.06,装上就有PHP4beta3可以用了。PHP4给我们带来一个简单的方法,就是使用SESSION(会话)级变量。但是如果不是PHP4又该怎么办?我们可以假设某人在15分钟以内对你的网页的请求都不属于一个新的人次,这样你可以做个计数的过程存在INC里,在每一个页面引用,访客第一次进入时将访问时间送到cookie里。以后每个页面被访问时都检查cookie上次访问时间值。

  2. PHP函数学习之PHP函数点评

    PHP函数使用说明,应用举例,精简点评,希望对您学习php有所帮助

  3. ecshop2.7.3 在php5.4下的各种错误问题处理

    将方法内的函数,分拆为2个部分。这个和gd库没有一点关系,是ecshop程序的问题。会出现这种问题,不外乎就是当前会员的session或者程序对cookie的处理存在漏洞。进过本地测试,includes\modules\integrates\ecshop.php这个整合自身会员的类中没有重写integrate.php中的check_cookie()方法导致,验证cookie时返回的username为空,丢失了登录状态,在ecshop.php中重写了此方法就可以了。把他加到ecshop.php的最后面去就可

  4. NT IIS下用ODBC连接数据库

    $connection=intodbc_connect建立数据库连接,$query_string="查询记录的条件"如:$query_string="select*fromtable"用$cur=intodbc_exec检索数据库,将记录集放入$cur变量中。再用while{$var1=odbc_result;$var2=odbc_result;...}读取odbc_exec()返回的数据集$cur。最后是odbc_close关闭数据库的连接。odbc_result()函数是取当前记录的指定字段值。

  5. PHP使用JpGraph绘制折线图操作示例【附源码下载】

    这篇文章主要介绍了PHP使用JpGraph绘制折线图操作,结合实例形式分析了php使用JpGraph的相关操作技巧与注意事项,并附带源码供读者下载参考,需要的朋友可以参考下

  6. zen_cart实现支付前生成订单的方法

    这篇文章主要介绍了zen_cart实现支付前生成订单的方法,结合实例形式详细分析了zen_cart支付前生成订单的具体步骤与相关实现技巧,需要的朋友可以参考下

  7. Thinkphp5框架实现获取数据库数据到视图的方法

    这篇文章主要介绍了Thinkphp5框架实现获取数据库数据到视图的方法,涉及thinkPHP5数据库配置、读取、模型操作及视图调用相关操作技巧,需要的朋友可以参考下

  8. PHP+jquery+CSS制作头像登录窗(仿QQ登陆)

    本篇文章介绍了PHP结合jQ和CSS制作头像登录窗(仿QQ登陆),实现了类似QQ的登陆界面,很有参考价值,有需要的朋友可以了解一下。

  9. 基于win2003虚拟机中apache服务器的访问

    下面小编就为大家带来一篇基于win2003虚拟机中apache服务器的访问。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  10. Yii2中组件的注册与创建方法

    这篇文章主要介绍了Yii2之组件的注册与创建的实现方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下

返回
顶部