質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

1回答

2334閲覧

Wordpress テーマカスタマイザーの件について質問です。

kenjii

総合スコア6

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2017/04/06 18:15

wordpressもphpも初心者です。
すこし謎の言葉が連発するかもしれませんが、すいません。

Wordpressのfunctions.phpに、ラジオボタンにて、
デザインを切り替えられる設定をカスタマイザに追加したのですが、
テンプレート側での呼び出し方がどうしても分からないです、


以下のようにカスタマイザに登録をし、レイアウトのテンプレートを用意して、
テーマカスタマイザーの「レイアウト」の項目で「2列」を選択すると「post-2」、
「3列」を選択すると「post-3」… という感じで値が入ると思うのですが、
その呼び出し方が分かりません。

php

1add_action( 'customize_register', 'theme_customize' ); 2function theme_customize($wp_customize){ 3 4 $wp_customize->add_section( 'layout_section', array( 5 'title' => 'レイアウト', 6 'priority' => 1, 7 'description' => 'レイアウトを選択してください。', 8 )); 9 10 $wp_customize->add_setting('layout_column', array( 11 'type' => 'option', 12 )); 13 14 $wp_customize->add_control( 'layout_column', array( 15 'section' => 'layout_section', 16 'settings' => 'layout_column', 17 'label' => 'フロントページのレイアウト', 18 'description' => 'レイアウトを選択してください。', 19 'type' => 'radio', 20 'choices' => array( 21 'post-2' => '2列', 22 'post-3' => '3列', 23 'post-4' => '4列', 24 ), 25 )); 26}

どなたか知恵を貸して頂けると、助かります。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

get_theme_mod で呼ぶのでは?

【WordPress テーマカスタマイザーの使い方 – セルティスラボ】
https://celtislab.net/archives/20140612/wordpress-customizer/

【get_theme_mod:WordPress私的マニュアル】
https://elearn.jp/wpman/function/get_theme_mod.html

投稿2017/04/07 02:58

kei344

総合スコア69398

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kenjii

2017/04/07 22:06

ご回答ありがとうございます。 get_theme_mod で呼ぶのを勉強してみたのですが、 根本的に呼び出す記述がわかりませんでした。 function.phpで関数を定義して、テンプレートで呼び出すというのが正解なのでしょうか? 以下のように書いてみたのですが、 function layout_column(){ return get_theme_mod( 'layout_column', 'post-2' ); } テンプレート側 <?php if ( layout_column() ): ?> <?php get_template_part('post-1');?> <?php else if ( layout_column() ): ?> <?php get_template_part('post-2);?> <?php else if ( layout_column() ): ?> <?php get_template_part('post-3);?> <?php else () ): ?> <?php endif; ?> 根本的に記述が違うのでしょうか? 初心者すぎて、基本的な記述がよくわかりませんでした。 値1が入った場合には、このテンプレート1をみたいな記述が分かりません。 教えていただければと思います。
kei344

2017/04/08 02:32

とりあえずテンプレートで echo してみては? echo get_theme_mod( 'layout_column', 'post-2' );
kenjii

2017/04/08 03:52

すいません。 結局わかりませんでした。 以下のサイトを参考にしてみたのですが、 http://shibatatakeshi.com/post-2650/ 結局呼び出し方が分からないです。
kei344

2017/04/08 04:44

先ほどのコメントを見て、それをどう試したか、結果がどうなっていたかを書いてもらえますか?
kenjii

2017/04/08 15:30

すいません。 /* テーマカスタマイザー ---------------------------------------------------------- */ add_action( 'customize_register', 'theme_customize' ); function theme_customize($wp_customize){ //レイアウト $wp_customize->add_section( 'layout_section', array( 'title' => 'レイアウト', 'priority' => 10, 'description' => 'お好みのレイアウトを選択してください。', )); // $wp_customize->add_setting('layout_column', array( 'type' => 'option', 'sanitize_callback' => 'sanitize_choices', )); $wp_customize->add_control( 'layout_column', array( 'section' => 'layout_section', 'settings' => 'layout_column', 'label' => 'カラム設定', 'description' => 'カラムを選択してください。', 'type' => 'radio', 'choices' => array( 'column-1' => '1カラム', 'column-2' => '2カラム', 'column-3' => '3カラム', ), )); } /* テーマカスタマイザー用のサニタイズ関数 ---------------------------------------------------------- */ //ラジオボタン function sanitize_choices( $input, $setting ) { global $wp_customize; $control = $wp_customize->get_control( $setting->id ); if ( array_key_exists( $input, $control->choices ) ) { return $input; } else { return $setting->default; } } テンプレート側で<?php get_template_part( 'layout', get_option('layout_column') ); ?> というふうにしたのですが、真っ白になりデバッグモードに切り替えようとFTPを開いたのですが、書き込みできなくて悩んでました。
kei344

2017/04/08 15:44

あ、試されなかったのですね。かまいませんが、それではアドバイスも出来ません。 FTPで編集されていたわけではなかったのですね。基本的に管理画面からテーマやプラグインを編集することはお勧めしません。ちょっとしたミスで管理画面すら表示されなくなります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問