web-dev-qa-db-ja.com

テーマカスタマイザからのフロントページのカスタム編集可能コンテンツ

私は下線付きの非常に基本的なテーマを開発しました。私はfront-page.phpのテーマカスタマイザからカスタムの編集可能なコンテンツ、または変更可能なページを探しています。

たとえば、ユーザーがカスタマイザにアクセスすると、注目のコンテンツのページを選択するオプション( WordPress 内の生成済みページ)とそれに添付された[続きを読む]ボタンが表示されます。ユーザーはすべての注目領域の画像を選択できます。

for example:

5
Humaira Naz

フロントページを完全に構築するためにテーマカスタマイザを使うのは面白い考えです。これが私がそれを始める方法です。

まず、フロントページにのみ表示されるセクションを作成しましょう。

add_action( 'customize_register', 'wpse_205445_customizer' );
function wpse_205445_customizer($wp_customize) {
     $wp_customize->add_section( 'custom-front-page', array(                                             
           'title'           => "Custom Front Page",
           'priority'        => 10,
           'active_callback' => 'is_front_page'
     ));
}

次に、いくつかの設定をしましょう。ほんの一例です。メインページの設定を選択するためのドロップダウンリストです。 transportrefreshでなければならないことに注意してください。

$wp_customize->add_setting('main-page-setup', array(
    'default'                   =>  '',
    'type'                      =>  'theme_mod',
    'capability'                =>  'edit_theme_options',
    'theme_supports'            =>  '',
    'transport'                 =>  'refresh',
    'sanitize_callback'         =>  'sanitize_text_field'
    ));

第三に、設定はコントロールを持つ必要があります。

$control_args = array(
    'label'                     =>  'My Main Page Setup',
    'section'                   =>  'custom-front-page',
    'settings'                  =>  'main-page-setup',
    'priority'                  =>  20,
    'type'                      =>  'select',
    'choices'                   =>  array('one-column', 'twocolumns', 'threecolumns'),
    );
$wp_customize->add_control( new WP_Customize_Control ($wp_customize, 'main-page-setup', $control_args));

これで、カスタマイザにドロップダウン選択があり、フロントページにのみ表示されます。これは3つのオプションを提供します。それではfront-page.phpに移動しましょう。ここでは、そのmodを呼び出す必要があります。

$main-page-setup = get_theme_mod('main-page-setup');
switch ($main-page-setup) {
    case 'one-column'    : get_template_part ('front-page-one-column');
    case 'two-columns'   : get_template_part ('front-page-two-columns');
    case 'three-column ' : get_template_part ('front-page-three-columns');
    default              : get_template_part ('front-page-default');
    }

そこで、カスタマイザを使ってあなたのフロントページのレイアウトを完全に変更する方法があります。もちろん、テンプレートパーツを読み込む代わりに、画像を切り替えたり、異なる投稿クエリを切り替えたりしてコンテンツを変更することもできます。

1
cjbj