将键和值添加到另一个文件中的数组

时间:2016-06-27 作者:A3O

在我的网站上,我正在使用WooCommerce的产品归档定制器插件。很棒的插件。但是,有一个选项可以设置每页显示的产品数量。下一段代码负责:

$wp_customize->add_control( new WP_Customize_Control( $wp_customize, \'wc_pac_products_per_page\', array(
                \'label\'    => __( \'Products per page\', \'woocommerce-product-archive-customiser\' ),
                \'section\'  => \'wc_pac\',
                \'settings\' => \'wc_pac_products_per_page\',
                \'type\'     => \'select\',
                \'choices\'  => array(
                                \'2\'  => \'2\',
                                \'3\'  => \'3\',
                                ----------
                                \'23\' => \'23\',
                                \'24\' => \'24\',

                ),
            ) ) );
我确实想在“choices”数组中添加另一个数量,但我被告知在原始插件文件中添加该数量是一种不好的做法。在这种情况下,它将被插件的更新覆盖。

我读了很多与阵列相关的主题,但我无法理解。

我必须向主题添加哪些代码functions.php 文件来实现这一点?

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

我尝试了另一种解决方案,成功了。我在WooCommerce文档中发现了一个小片段:

// Display 24 products per page. Goes in functions.php add_filter( \'loop_shop_per_page\', create_function( \'$cols\', \'return 24;\' ), 20 );.

它将覆盖自定义程序中的设置。我只需根据自己的喜好更改数字“24”。

SO网友:cjbj

我不知道hook Woocommerce使用什么来添加定制程序代码,但在functions.php 稍后您必须挂接自己的函数,如下所示(最后一个数字是优先级较低的):

add_action (\'the_name_of_that_hook\',\'wpse_280836_mycontrol\', 99)
现在,在要挂接的函数中,必须首先删除现有控件并添加自己的控件:

function wpse_280836_mycontrol () {
  $wp_customize->remove_control(\'wc_pac_products_per_page\');
  $wp_customize->add_control( new WP_Customize_Control( $wp_customize, \'wc_pac_products_per_page\', array(
            \'label\'    => __( \'Products per page\', \'woocommerce-product-archive-customiser\' ),
            \'section\'  => \'wc_pac\',
            \'settings\' => \'wc_pac_products_per_page\',
            \'type\'     => \'select\',
            \'choices\'  => array(
                            \'mystuff\'  => \'myotherstuff\',
                            \'3\'  => \'3\',
                            ----------
                            \'23\' => \'23\',
                            \'24\' => \'24\',

            ),
        ) ) );
请注意,我不知道此控件的作用,因为我不是Woocommerce专家。代码中的其他地方可能有一个只允许给定选择的检查。这将使您的修改无效。