WordPress twentyseventeen の function.php を見る – その2
公開日:
:
PHP, WordPress, wordpress テンプレート
前回の続きです。
次のスターターコンテンツは、今回のシンプルテンプレートには不要ですが、よくわかってなかったので、ちょっと詳しく見てみました。
スターターコンテンツ starter-content
スターターコンテンツの設定は、4.7以降の twentyseventeen から使えるみたいです。
スターターコンテンツは、ワードプレス新規インストールで、外観>カスタマイズ>公開ボタン を押すと反映されます。
$starter_content = array( 'widgets' => array(・・・(省略)・・・),//ウィジェット 'posts' => array(・・・(省略)・・・),//自動で作られる固定ページのサムネイルの画像の設定です。 'attachments' => array(・・・(省略)・・・),//サムネイルの画像の具体的なパス 'options' => array(・・・(省略)・・・),//オプション 'theme_mods' => array(・・・(省略)・・・),//トップページの表示順番 'nav_menus' => array(・・・(省略)・・・),//ナビゲーション ); $starter_content = apply_filters( 'twentyseventeen_starter_content', $starter_content ); add_theme_support( 'starter-content', $starter_content );
上記で省略したウィジェットの所のソースを見てみます。
'widgets' => array( // Place three core-defined widgets in the sidebar area. 'sidebar-1' => array( 'text_business_info', 'search', 'text_about', ), // Add the core-defined business info widget to the footer 1 area. 'sidebar-2' => array( 'text_business_info', ), // Put two core-defined widgets in the footer 2 area. 'sidebar-3' => array( 'text_about', 'search', ), ),
外観>カスタマイズ>ウィジェットを見てみると、この3つが既に設定されています。
ライブプレビューのナビゲーションメニューのブログを押して、ブログページを見てみると、sidebar-1 も表示されています。
スターターコンテンツが表示しない場合
このスターターコンテンツは、新規で4.7以降をインストールしないと動きません。
何かを更新しても消えてしまいます。
例えば記事を何か投稿したとたん動かなくなります。
既存の WordPress を4.7以降にバージョンアップしてもスターターコンテンツは反映されていません。
スターターコンテンツは、 optionフィールドの fresh_site が有効(値:1)だと動くようにとなっています。
(DBでいうと、wp_options テーブルの fresh_site が0だと動きません。)
fresh_site が有効かどうか確認するには、function.php の一番上のところでもいいので、以下を入れて確認してみるとはやいかもしれません。
echo get_option( 'fresh_site' );exit;
サイトにアクセスして、0 が表示されてる場合、スターターコンテンツは動きません。
全てをインストールし直せばもちろん fresh_site は 1 になりますが、0 の状態からスターターコンテンツを試してみたい場合は、function.php に以下を書けば、一応有効が試せます。
update_option('fresh_site',1);
一度公開ボタンを押してスターターコンテンツを有効にしてしまうと、固定ページも作られてしまうので、function.php をいじりたい時は、この固定ページも削除してからやればさらに反映される所も増えるかと思います。
ただ、fresh_site でわざわざ分岐をしているということは、何か不具合が起こる可能性があるということです。
DBもリセットしなくてはいけない可能性もあるので、新規インストール時以外は、注意も必要です。
スターターコンテンツを定義している wp-includes/theme.php の get_theme_starter_content() を見て、デフォルトで定義してあるものをまとめてメモしておきます。
スターターコンテンツ widgets デフォルト定義
text_business_info | 会社概要(テキストエリアで、アクセスなどの会社概要を入力出来るようになっている。) |
---|---|
text_about | このサイトについて(テキストエリアで、このサイトについてなどのテキスト情報を入力出来るようになっている。) |
archives | アーカイブ(タイトルのみを入力) |
calendar | カレンダー(タイトルのみを入力) |
categories | カテゴリ(タイトルのみを入力) |
meta | メタ(タイトルのみを入力) |
recent-comments | 最近のコメント(タイトルのみを入力) |
recent-posts | 最近の投稿(タイトルのみを入力) |
search | 検索(タイトルのみを入力) |
スターターコンテンツ nav_menus デフォルト定義
link_home | ホーム |
---|---|
page_home | ページ |
page_about | 会社概要 |
page_blog | ブログ |
page_news | ニュース |
page_contact | お問い合わせ |
link_email | イーメール |
link_facebook | SNS:フェイスブック |
link_foursquare | SNS:フォースクエア |
link_github | SNS:ギットハブ |
link_instagram | SNS:インスタ |
link_linkedin | SNS:リンクトイン |
link_pinterest | SNS:ピンタレスト |
link_twitter | SNS:ツイッター |
link_yelp | ローカルビジネスレビューサイト:イェルプ |
link_youtube | ユーチューブ |
スターターコンテンツ posts デフォルト定義
home | ホーム |
---|---|
about | 会社概要 |
contact | お問い合わせ |
blog | ブログ |
news | ニュース |
homepage-section | ホームページセクション |
抜粋文表示 excerpt_more フックなど
ここからは、またざっくりメモしておきます。
コンテツ幅の設定
function twentyseventeen_content_width() { ・・・(省略)・・・ } add_action( 'template_redirect', 'twentyseventeen_content_width', 0 );
コンテツ幅の設定で、1カラムと2カラムで処理を分けています。
はじめ1カラムと2カラムの設定ってどこだろう、って思いました。
カスタマイザーで、固定ページを選択すると、「テーマオプション」というメニューが出てきますので、そこから選択出来ます。
フォントの設定
function twentyseventeen_fonts_url() { ・・・(省略)・・・ }
function twentyseventeen_resource_hints( $urls, $relation_type ) { ・・・(省略)・・・ } add_filter( 'wp_resource_hints', 'twentyseventeen_resource_hints', 10, 2 );
ウィジェットの設定
function twentyseventeen_widgets_init() { ・・・(省略)・・・ } add_action( 'widgets_init', 'twentyseventeen_widgets_init' );
抜粋文表示(MOREリンク)
抜粋文表示 the_excerpt(); の変更。
function twentyseventeen_excerpt_more( $link ) { ・・・(省略)・・・ } add_filter( 'excerpt_more', 'twentyseventeen_excerpt_more' );
no-jsクラス
JavaScriptが有効でない場合の、no-jsクラスを使用する時。
function twentyseventeen_javascript_detection() { ・・・(省略)・・・ } add_action( 'wp_head', 'twentyseventeen_javascript_detection', 0 );
トラックバックの設定
function twentyseventeen_pingback_header() { ・・・(省略)・・・ } add_action( 'wp_head', 'twentyseventeen_pingback_header' );
だいたい書いたので、今回はこの辺で終わります。
関連記事
-
WordPress 独自テーブル
Wordpress で独自テーブルを作ってみようと思います。 独自テーブルのデータ 今回のデ
-
WordPress twentyseventeen の function.php を見る – その1
WordPress の最低限の機能だけのシンプルなテンプレートが欲しかったので、作っておくことにしま
-
WordPress 自作フォーム その1(サンプルと設置)
Wordpress でプラグインを使わずにフォームをやってみます。 簡単に名前、メールアドレス、メ
-
WordPress カレンダー カスタマイズ(add_filter版)
前回、「WordPress の PHP をちょっと見てみよう Ⅲ」でフックをやったので、カレンダーで
-
WordPress レスポンシブ テンプレートコーポレート用(シンプル・カスタマイズ用)ダウンロード
WordPress レスポンシブ テンプレートコーポレート用(シンプル・カスタマイズ用)ダウンロード
-
「All-in-One WP Migration」プラグインで 簡単に WordPress のサーバー移行する手順メモ
1.移行元サイトでのデータエクスポート 「All-in-One WP Migration(公式リン
-
wordpress カスタム投稿で 2ページ目以降が404になってしまう
wordpress のカスタム投稿で、ニュースのページを作っていました。 ニュース一覧で、ペー
-
WordPress レスポンシブ テンプレート 元にサイトを作ってみる その2
DEMO を見る カスタム投稿タイプ functions.php 今回は3つのリストメニュ
-
ロリポップでWordPressのPHPバージョン7.1に変更後「サイトに技術的な問題が発生しています。」
WordPress.org の推奨環境 PHP7以上 MySQL5.6以上またはMaria
-
WordPress レスポンシブ テンプレート の メニューやブログの設置
前回の 「WordPress レスポンシブ テンプレートコーポレート用(シンプル・カスタマイズ用)ダ