我可以在自己的插件中使用/编辑WordPress核心功能吗?

时间:2015-08-18 17:02:13

标签: wordpress

所以我目前正在为创建网站选项插件而愚弄。我想在设置部分之间添加标签功能,但我不希望每个标签都有单独的页面(就像我在大多数教程中看到的那样,我认为这是因为nonce)。我期待只有一个简单的jQuery Tab功能。

所以为了做到这一点,我需要在每个设置部分包装一个div。似乎没有办法挂钩do_settings_sections或add_setting_section wordpress函数。

所以我的解决方案就是在我的插件中复制do_settings_sections函数并添加我需要的东西。这是一件愚蠢的事情,下次WordPress更新时会遇到问题吗?

这是我的新do_settings_section函数(在我的插件中调用)

function do_settings_sections_new( $page ) {
global $wp_settings_sections, $wp_settings_fields;

if ( ! isset( $wp_settings_sections[$page] ) )
    return;

$numCategory=0; //Added by me
foreach ( (array) $wp_settings_sections[$page] as $section ) {

    $numCategory++;//Added by me
    if ( $section['title'] )
        echo "<div class='opt-category active' data-content=". $numCategory .">"; //Added by me
        echo "<h3>{$section['title']}</h3>\n";

    if ( $section['callback'] )
        call_user_func( $section['callback'], $section );

    if ( ! isset( $wp_settings_fields ) || !isset( $wp_settings_fields[$page] ) || !isset( $wp_settings_fields[$page][$section['id']] ) )
        continue;
    echo '<table class="form-table2">';
    do_settings_fields( $page, $section['id'] );
    echo '</table>';
    echo '</div>'; //Added by me

}

}

1 个答案:

答案 0 :(得分:0)

Wordpress提供了一些覆盖或修改核心功能的选项。通过使用Actions and Filters,您可以更改多个Wordpress功能的逻辑和/或视图。还有一个Pluggable Functions列表,Wordpress允许您直接覆盖。除此之外,修改或覆盖核心功能是不受欢迎的,并且会随更新而中断。

动作和过滤器有很多选项。一种方法可能是使用remove menu page();完全隐藏默认的“设置”菜单,并为其构建自己的视图。

你也可以使用一些jQuery / AJAX魔术来完成Tab切换而不加载页面。

祝你好运!