如何将CSS类添加到现有的Woocommerce / Wordpress小部件中

时间:2014-06-19 18:11:06

标签: css wordpress woocommerce

我想在Woocommerce Product Categories Widget中添加一对类。为了确保我不会破坏任何更新,我不想编辑原始源代码,或者必须创建新的替换小部件。

从我收集的内容来看,widget_display_callback应该能够做我需要的事情,但documentation实际上是稀疏的(实际上是不存在的)。因此,我并不确定如何提取包含应用于窗口小部件的css类名的设置。

我目前的代码如下,显然无效。任何建议都会非常感激。

add_filter( 'widget_display_callback', 'add_classes', 10, 3 );

function add_classes($settings, $widget, $args) {
    if (get_class($widget) == 'WC_Widget_Product_Categories') {
        $widget_ops['classname'] .= " hidden-phone hidden-tablet";
    }
    return $widget_ops;
}

我认为这是class-wc-widget-product-categories.php文件中的相关代码段:

if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly

class WC_Widget_Product_Categories extends WP_Widget {

var $woo_widget_cssclass;
var $woo_widget_description;
var $woo_widget_idbase;
var $woo_widget_name;
var $cat_ancestors;
var $current_cat;

/**
 * constructor
 *
 * @access public
 * @return void
 */
function WC_Widget_Product_Categories() {

    /* Widget variable settings. */
    $this->woo_widget_cssclass = 'woocommerce widget_product_categories';
    $this->woo_widget_description = __( 'A list or dropdown of product categories.', 'woocommerce' );
    $this->woo_widget_idbase = 'woocommerce_product_categories';
    $this->woo_widget_name = __( 'WooCommerce Product Categories', 'woocommerce' );

    /* Widget settings. */
    $widget_ops = array( 'classname' => $this->woo_widget_cssclass, 'description' => $this->woo_widget_description );

    /* Create the widget. */
    $this->WP_Widget('product_categories', $this->woo_widget_name, $widget_ops);
}

1 个答案:

答案 0 :(得分:-1)

尝试:

function changeclass() {
    WC_Widget_Product_Categories->woo_widget_cssclass= 'whatever';
}

add_action('init', 'changeclass');

如果它不起作用,你需要进一步研究,上面的代码在哪里被吸引? (它的类是add_action('init'数组($ this,'functionname');(prob WP_WIDGET函数。

在此处查看可能的钩子:http://codex.wordpress.org/Plugin_API/Action_Reference