所以我目前正在为创建网站选项插件而愚弄。我想在设置部分之间添加标签功能,但我不希望每个标签都有单独的页面(就像我在大多数教程中看到的那样,我认为这是因为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
}
}
答案 0 :(得分:0)
Wordpress提供了一些覆盖或修改核心功能的选项。通过使用Actions and Filters,您可以更改多个Wordpress功能的逻辑和/或视图。还有一个Pluggable Functions列表,Wordpress允许您直接覆盖。除此之外,修改或覆盖核心功能是不受欢迎的,并且会随更新而中断。
动作和过滤器有很多选项。一种方法可能是使用remove menu page();
完全隐藏默认的“设置”菜单,并为其构建自己的视图。
你也可以使用一些jQuery / AJAX魔术来完成Tab切换而不加载页面。
祝你好运!