Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在不修改核心文件的情况下更改函数_Php_Wordpress - Fatal编程技术网

Php 如何在不修改核心文件的情况下更改函数

Php 如何在不修改核心文件的情况下更改函数,php,wordpress,Php,Wordpress,我想改变我的主题的核心文件。我使用的是子主题,我想从functions.php更改我的核心文件函数 这是一个核心文件功能: // main blog drag and drop options function cyberchimps_selected_elements() { $options = array( 'boxes_lite' => __( 'Boxes Lite', 'cyberchimps_elements' ), "portfolio_lite"

我想改变我的主题的核心文件。我使用的是子主题,我想从
functions.php
更改我的核心文件函数

这是一个核心文件功能:

// main blog drag and drop options
function cyberchimps_selected_elements() {
$options = array(
    'boxes_lite'     => __( 'Boxes Lite', 'cyberchimps_elements' ),
    "portfolio_lite" => __( 'Portfolio Lite', 'cyberchimps_elements' ),
    "blog_post_page" => __( 'Post Page', 'cyberchimps_elements' ),
    "slider_lite"    => __( 'Slider Lite', 'cyberchimps_elements' )
);

return $options;
}

add_filter( 'cyberchimps_elements_draganddrop_options', 'cyberchimps_selected_elements' );
现在,我只想在代码中添加一行:

"box_lite" => __( 'box', 'cyberchimps_elements' ),
还有这个:

require_once( $directory_path . '/elements/boxes2.php' );

有人能帮我吗?

有一个很棒的WordPress函数叫做。您可以使用它删除上述函数,然后在子主题的functions.php中重新添加修改过的版本。比如:

remove_filter( 'cyberchimps_elements_draganddrop_options', 'cyberchimps_selected_elements' );
add_filter( 'cyberchimps_elements_draganddrop_options', 'cyberchimps_selected_elements_child' );

// main blog drag and drop options
function cyberchimps_selected_elements_child() {
    $options = array(
        "box_lite" => __( 'box', 'cyberchimps_elements' ),
        "portfolio_lite" => __( 'Portfolio Lite', 'cyberchimps_elements' ),
        "blog_post_page" => __( 'Post Page', 'cyberchimps_elements' ),
        "slider_lite"    => __( 'Slider Lite', 'cyberchimps_elements' )
    );

    return $options;
}

您可以根据下面给定的代码应用一个参数变量,它肯定会起作用,只是您必须确保,无论在何处检索修改后的选项数组,都必须传递参数值“false”。函数调用也写在代码下面。。祝你好运

// main blog drag and drop options
function cyberchimps_selected_elements($default=true) {
  if($default){
    $options = array(
      "boxes_lite"     => __( 'Boxes Lite', 'cyberchimps_elements' ),
      "portfolio_lite" => __( 'Portfolio Lite', 'cyberchimps_elements' ),
      "blog_post_page" => __( 'Post Page', 'cyberchimps_elements' ),
      "slider_lite"    => __( 'Slider Lite', 'cyberchimps_elements' )
    );
  } else {
    $options = array(
      "boxes_lite"     => __( 'Boxes Lite', 'cyberchimps_elements' ),
      "portfolio_lite" => __( 'Portfolio Lite', 'cyberchimps_elements' ),
      "blog_post_page" => __( 'Post Page', 'cyberchimps_elements' ),
      "slider_lite"    => __( 'Slider Lite', 'cyberchimps_elements' ),
      "box_lite"       => __( 'box', 'cyberchimps_elements' )
    );
  }
return $options;
}
函数调用示例:

//function call
cyberchimps_selected_elements(false);

创建自己的函数,调用
cyberchimps\u selected\u elements()
并添加这些行?谢谢。我有类似的“添加动作”条件,我是否也应该将其设置为“删除动作”?