Theme Options page with tabs

时间:2011-05-31 作者:Zack

我有一个主题,我正在开发一个HTML模板。我还设计了一个选项页面,以及主题本身内置的大量插件。我选择了一个选项卡式界面,并试图学习如何使用WordPress的设置API。

我正在为主题的函数使用类结构。以下是注册设置等的声明。

public function __admin_init()
{
    register_setting( \'cncfps_twitter\', \'cncfps_twitter_options\', array( &$this, \'wp_cncfps_twitter\' ) );
    add_settings_section( \'cncfps_twitter\', \'Twitter\', array( &$this, \'wp_cncfps_twitter\' ), \'cncfps\' );
    add_settings_field( \'cncfps_twitter_consumer_key\', \'Consumer Key\', array( &$this, \'twitter_consumer_key\' ), \'cncfps\', \'cncfps_twitter\' );
    add_settings_field( \'cncfps_twitter_consumer_secret\', \'Consumer Secret\', array( &$this, \'twitter_consumer_secret\' ), \'cncfps\', \'cncfps_twitter\' );
    add_settings_field( \'cncfps_twitter_apikey\', \'API Key\', array( &$this, \'twitter_apikey\' ), \'cncfps\', \'cncfps_twitter\' );
}

public function wp_cncfps_twitter()
{
    // TODO: wut. ?!?!
    echo "what is this?";
}

public function twitter_consumer_key()
{
    echo "Hello";
}

public function twitter_consumer_secret()
{
    echo "World";
}

When I want to display the fields as shown here, I don\'t see a thing. The following is how I attempt to display them. I did follow a few tutorials but it\'s just not clicking in my brain for some reason.

settings_fields(\'cncfps_twitter\');
do_settings_sections(\'cncfps_twitter\');

enter image description here

2 个回复
最合适的回答,由SO网友:Chip Bennett 整理而成

这个do_settings_section() 函数调用需要与$optiongroup 传递给的参数register_setting(). 要查看所有无数函数是如何组合在一起的,请参见page 10 of my tutorial.

试图了解各种函数是如何串联在一起的,确实会让人相当困惑。

编辑:

您似乎正确使用了选项组。你能澄清什么是/不是“点击”你吗?你在标题中提到你想使用一个选项卡式界面,但问题文本本身并没有真正指出你在哪里遇到了困难。

SO网友:Alex Mansfield

当我尝试实现建议的代码时,我也有一个空白页。出于某种原因,我的网站不喜欢本节中的所有双引号(摘自Chip教程第3页):

if ( $tab == $current ) :
    $links[] = "<a class="nav-tab nav-tab-active" href="?page=oenology-    settings&tab=$tab">$name</a>";
else :
    $links[] = "<a class="nav-tab" href="?page=oenology-settings&tab=$tab">$name</a>";
endif;
我不得不更改它并使用单引号:

if ( $tab == $current ) :
    $links[] = \'<a class="nav-tab nav-tab-active" href="?page=oenology-settings&tab=\' . $tab . \'">\' . $name . \'</a>\';
else :
    $links[] = \'<a class="nav-tab" href="?page=oenology-settings&tab=\' . $tab . \'">\' . $name . \'</a>\';
endif;
这似乎为我解决了问题。我不确定这是否与你面临的问题相同。

结束