web-dev-qa-db-ja.com

タブ付きのテーマオプションページ

私が持っているHTMLテンプレートから開発しているテーマがあります。私はテーマ自体に組み込まれたたくさんのプラグインと共にオプションページもデザインしています。私はタブ付きのインターフェースを選び、WordPressのSettings 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";
}

ここに表示されている ように​​フィールドを表示したいとき 、表示されません。表示方法は次のとおりです。 いくつかのチュートリアル に従ったのですが、頭の中でクリックしていないだけです。何らかの理由で。

settings_fields('cncfps_Twitter');
do_settings_sections('cncfps_Twitter');

enter image description here

3
Zack

do_settings_section()関数呼び出しは、register_setting()に渡す$optiongroup引数に対応する必要があります。すべての無数の関数がどのように組み合わさっているかを見るには、私のチュートリアルの10ページ目 を参照してください

さまざまな関数がどのようにつながっているのかを追跡しようとするとかなり混乱します。

編集:

あなたはオプショングループを適切に使用しているようです。 「クリック」されている/されていないことを明確にすることができますか?あなたはタイトルでタブ付きのインターフェースを使いたいと述べていますが、質問のテキスト自体は実際には困難に直面しているところを正確に示していません。

3
Chip Bennett

提案されたコードを実装しようとしたときにも空白のページがありました。どういうわけか、私のサイトはこのセクションのすべての二重引用符が気に入らなかった(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;

それは私のためにそれを修正するようでした。それがあなたが直面しているのと同じ問題であるかどうかはわかりません。

1
Alex Mansfield