【问题标题】:Can I use/edit WordPress Core Functions in my own plugin?我可以在自己的插件中使用/编辑 WordPress 核心功能吗?
【发布时间】:2015-08-18 17:02:12
【问题描述】:

所以我目前正在创建一个站点选项插件。我想在设置部分之间添加选项卡功能,但我不想为每个选项卡设置单独的页面(就像我在大多数教程中看到的那样,我认为这是因为随机数)。我希望只有一个简单的 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

}

}

【问题讨论】:

    标签: wordpress


    【解决方案1】:

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

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

    您还可以使用一些 jQuery/AJAX 魔术来完成标签切换而无需页面加载。

    祝你好运!

    【讨论】:

    • 所以我走的是安全路线,只是添加了必要的标记,以便通过 Jquery 工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-13
    • 1970-01-01
    • 2011-02-20
    • 1970-01-01
    相关资源
    最近更新 更多