zack
  • 0
Мастер

Страница параметров темы с вкладками

  • 0

У меня есть тема, которую я разрабатываю на основе имеющегося у меня HTML-шаблона. Я также разрабатываю страницу параметров вместе с множеством плагинов, встроенных в саму тему. Я выбрал интерфейс с вкладками и пытаюсь научиться использовать API настроек WordPress.

Я использую структуру класса для функций темы. Ниже приводится объявление о регистрации настроек и еще много чего.

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";
}

Когда я хочу отобразить поля, как показано здесь, я ничего не вижу. Ниже показано, как я пытаюсь их отобразить. Я следил за несколькими уроками, но по какой-то причине это просто не щелкало в моей голове.

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

введите описание изображения здесь

Share
  1. Вызов do_settings_section() функции должен соответствовать $optiongroup аргументу, который вы передаете register_setting() . Чтобы увидеть, как все бесчисленное множество функций сочетаются друг с другом, см. страницу 10 моего руководства.

    Это действительно сбивает с толку, пытаясь проследить, как различные функции связаны друг с другом.

    РЕДАКТИРОВАТЬ:

    Похоже, вы правильно используете группу опций. Можете ли вы уточнить, что для вас «щелкает»? Вы упоминаете в заголовке, что хотите использовать интерфейс с вкладками, но сам текст вопроса на самом деле не указывает, где именно вы сталкиваетесь с трудностями.

    • 0
  2. У меня также была пустая страница, когда я пытался реализовать предложенный код. По какой-то причине моему сайту не понравились все двойные кавычки в этом разделе (со страницы 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;
    

    Это, казалось, исправило это для меня. Я не уверен, что это та же проблема, с которой вы столкнулись.

    • 0

Оставить ответ

You must login to add an answer.