如何在不修改主题核心文件的情况下更改功能

时间:2014-12-15 16:19:44

标签: php wordpress

我想改变主题的核心文件。我正在使用子主题,我想从我的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' );

有人帮我这个吗?

2 个答案:

答案 0 :(得分:1)

有一个很棒的WordPress函数叫remove_filter()。您可以使用它来删除上述功能,然后在您的子主题的 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;
}

答案 1 :(得分:0)

你可以根据下面给出的代码应用一个参数变量,它肯定会工作,你必须确保无论你想要检索更改的数组选项,你必须传递参数值“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);
相关问题