-2

我正在尝试通过添加不属于同一文件的键/值来附加数组。

例如我有这个数组:

$div_size = array(

    'Accordion' => array(
        'element1-4'=>'1/4',
        'element1-3'=>'1/3',
        'element1-2'=>'1/2',
        'element2-3'=>'2/3',
        'element3-4'=>'3/4',
        'element1-1'=>'1/1'
     ),
);

我需要添加这个:

    'blog' => array(
        'element1-4'=>'1/4',
        'element1-3'=>'1/3',
        'element1-2'=>'1/2',
        'element2-3'=>'2/3',
        'element3-4'=>'3/4',
        'element1-1'=>'1/1'
     ),

$div_size = array() 在文件 foo.php 中,附加的键/值 'Accordion' => array() 在文件 bar.php

这两个动作的结果必须是:

$div_size = array(

    'Accordion' => array(
        'element1-4'=>'1/4',
        'element1-3'=>'1/3',
        'element1-2'=>'1/2',
        'element2-3'=>'2/3',
        'element3-4'=>'3/4',
        'element1-1'=>'1/1'
     ),

    'blog' => array(
        'element1-4'=>'1/4',
        'element1-3'=>'1/3',
        'element1-2'=>'1/2',
        'element2-3'=>'2/3',
        'element3-4'=>'3/4',
        'element1-1'=>'1/1'
     ),
);

我想要做的是在我的 Wordpress 父主题的管理部分添加一个额外的选项,但额外的数组值需要来自我的子主题中的 functions.php 文件。

4

3 回答 3

1

您可以使用array_merge()

$div_size = array_merge($div_size, $other_array)
于 2013-05-26T11:47:15.110 回答
1

子主题的 function.php 在父主题之前加载。所以应该设置一个功能。查看 WP 信息:使用 functions.php

在您的子主题的函数中声明并实现一个函数,以创建所需的数组。称之为独特的东西。说THEMENAME_getBlogArray()

检查正在使用设置的功能if ( function_exists('THEMENAME_getBlogArray()')。如果已设置,请使用它。在你的情况下

$other_array = THEME_getBlogArray();
$div_size = array_merge($div_size, $other_array)

应该做的伎俩。(如果需要,您可以在调用该函数后对其进行验证。)

希望这可以帮助。

于 2013-05-26T18:28:50.280 回答
0

在评论者的帮助下……这是我为使其发挥作用所做的工作。

在子 Wordpress 主题中,我创建了一个这样的文件,或者您可以将其添加到您的 functions.php 文件中。

// path to the parent theme with the array you want appended
include TEMPLATEPATH . '/whatever/some-file.php';

// the key/value you want appended
$div_size_merge = array(
    'blog' => array(
      'element1-4'=>'1/4',
      'element1-3'=>'1/3',
      'element1-2'=>'1/2',
      'element2-3'=>'2/3',
      'element3-4'=>'3/4',
      'element1-1'=>'1/1'
   ),
);

// now merge the two    
$div_size = array_merge($div_size, $div_size_merge);
于 2013-05-26T19:48:23.933 回答