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


How to alter functions without modifying themes core files

我想更改主题的核心文件。 我正在使用子主题,我想从我的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函数叫做remove_filter((。您可以使用它删除上述功能,然后在子主题的函数中重新添加修改后的版本.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);
相关文章: