删除插件中添加的Wordpress操作,然后添加新操作来代替该操作

删除插件中添加的Wordpress操作,然后添加新操作来代替该操作,wordpress,action,hook,Wordpress,Action,Hook,我正在创建一个wordpress主题,我需要删除插件类中添加的wordpress操作 是插件的类,在该类中添加的操作是 添加动作'woocommerce'在'shop'循环'item'之后,数组$this'添加'compare'链接',20;这是我需要在我的主题中删除的动作 删除该操作后,我需要在同一位置添加新操作。 新的行动是: function product_add_compare_link( $product_id = false, $args = array() ) { ext

我正在创建一个wordpress主题,我需要删除插件类中添加的wordpress操作

是插件的类,在该类中添加的操作是 添加动作'woocommerce'在'shop'循环'item'之后,数组$this'添加'compare'链接',20;这是我需要在我的主题中删除的动作

删除该操作后,我需要在同一位置添加新操作。 新的行动是:

function product_add_compare_link( $product_id = false, $args = array() ) {
    extract( $args );
    if ( ! $product_id ) {
        global $product;
        $product_id = isset( $product->id ) && $product->exists() ? $product->id : 0;
    }
    if ( empty( $product_id ) ) return;
    $is_button = !isset( $button_or_link ) || !$button_or_link ? get_option( 'yith_woocompare_is_button' ) : $button_or_link;
    $button_text = get_option( 'yith_woocompare_button_text', __( 'Compare', 'yit' ) );
    $localized_button_text = function_exists( 'icl_translate' ) ? icl_translate( 'Plugins', 'plugin_yit_compare_button_text', $button_text ) : $button_text;
    printf( '<a href="%s" class="%s" data-product_id="%d"><i class="icon-tasks"></i>%s</a>', $this->add_product_url( $product_id ), 'compare' . ( $is_button == 'button' ? ' add-comp' : '' ), $product_id, ( isset( $button_text ) &&      $button_text != 'default' ? $button_text : $localized_button_text ) );
}
add_action( 'woocommerce_after_shop_loop_item', 'product_add_compare_link', 20 );
我们将非常感谢您的帮助


谢谢

我不会删除这样的操作。从类中删除添加的操作的传统方法是:

remove_action('woocommerce_after_shop_loop_item', array( $class_variable, 'add_compare_link' ), 20  );
其中,类变量是类的实例化。如何引用它取决于类在插件中的实例化方式

您可以在以下位置阅读实例化类的不同方法和相应的remove_操作:

此外,当您使用add_action时,如果希望能够在函数中使用多个输入参数,则需要指定参数的数量。因此,在你的情况下:

add_action( 'woocommerce_after_shop_loop_item', 'product_add_compare_link', 50, 2 );
add_action( 'woocommerce_after_shop_loop_item', 'product_add_compare_link', 50, 2 );