ネイティブ テーマカスタマイズAPI では、独立したオプションパネルを持つのは意味がありません。それでは、どのようにして私のコード(下記)をテーマカスタマイザに実装するのですか?
これが私のTheme Customizerのためのコードです: ここにコード
私のオプションパネルで、私はユーザーがアーカイブまたはページネーションの次/前のリンクを選択できるようにしています。
array( "name" => "Paginate or next/previous links?",
"desc" => "Choose your option",
"id" => $shortname."_next_prev_or_paginate",
"type" => "select",
"options" => array("Next/Previous Links", "Pagination"),
"std" => "Next/Previous Links"),
これが機能するための関数は次のとおりです。
// Pagination
function my_theme_navigation() {
global $shortname;
if( get_option( $shortname . '_next_prev_or_paginate' ) == 'Next/Previous Links' ) :
// the block for next-prev navigation
echo '<div class="button left">';
next_posts_link('Older');
echo '</div>';
echo '<div class="button right">';
previous_posts_link ('Newer');
echo '</div>'; else :
// the block for pagination
global $wp_query;
$big = 999999999;
// need an unlikely integer
echo paginate_links( array( 'base' => str_replace( $big, '%#%', get_pagenum_link( $big ) ), 'format' => '?paged=%#%','end_size' => 1,'mid_size' => 2, 'current' => max( 1, get_query_var('paged') ), 'total' => $wp_query->max_num_pages ) );
endif;
}
私はそれから単にこれを使ってそれを呼ぶ:
<?php my_theme_navigation(); ?>
ステップ1:カスタマイザに設定を登録する
これをwptuts_theme_customizer()
関数に追加します。これにより、新しい「ページ区切り」セクションと「ページ区切りスタイル」設定が登録されます。
/* Section: Pagination */
$wp_customize->add_section( 'themeslug_pagination', array(
'title' => __( 'Pagination', 'themeslug' ),
) );
$wp_customize->add_setting( 'pagination_style', array(
'default' => 'next-previous-links',
) );
$wp_customize->add_control( 'pagination_style', array(
'label' => __( 'Pagination Style', 'themeslug' ),
'section' => 'themeslug_pagination',
'type' => 'radio',
'choices' => array(
'next-previous-links' => __( 'Next/Previous Links', 'themeslug' ),
'numbered' => __( 'Numbered', 'themeslug' ),
),
) );
ステップ2:カスタマイザ設定で動作するようにページ付け機能を変更する
my_theme_navigation()
関数をこのように修正してください。
前:if( get_option( $shortname . '_next_prev_or_paginate' ) == 'Next/Previous Links' ) :
の後:if ( 'next-previous-links' == get_theme_mod( 'pagination_style' ) ) :
テーマのmodは現在アクティブなテーマに固有のものであるため、{$themename}_
を前に付ける必要はありません。これは冗長になります。
これに私の修正を加えたあなたのオリジナルのコードがあります。