WordPress twentyseventeen の function.php を見る – その2

公開日: : PHP, WordPress, wordpress テンプレート

WordPress Twenty Seventeen function.php

前回の続きです。

次のスターターコンテンツは、今回のシンプルテンプレートには不要ですが、よくわかってなかったので、ちょっと詳しく見てみました。

スターターコンテンツ starter-content

スターターコンテンツの設定は、4.7以降の twentyseventeen から使えるみたいです。
WordPress Twenty Seventeen スターターコンテンツ
スターターコンテンツは、ワードプレス新規インストールで、外観>カスタマイズ>公開ボタン を押すと反映されます。

$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カラムの設定ってどこだろう、って思いました。

カスタマイザーで、固定ページを選択すると、「テーマオプション」というメニューが出てきますので、そこから選択出来ます。
twentyseventeen 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 レスポンシブ テンプレート 元にサイトを作ってみる その1

「レスポンシブ テンプレート の メニューやブログの設置」の記事では、メニューやブログの設置例をやっ

記事を読む

WordPress プラグイン「 Search Everything 」

WordPressでカテゴリー名も検索にひっかけるプラグイン「Search Everything」

WordPressでカテゴリーも検索にひっかけるプラグイン「Search Everything 8.

記事を読む

Wordpress 自作フォーム

WordPress 自作フォーム その1(サンプルと設置)

Wordpress でプラグインを使わずにフォームをやってみます。 簡単に名前、メールアドレス、メ

記事を読む

WordPress レスポンシブ テンプレート 元にサイトを作ってみる その2

DEMO を見る カスタム投稿タイプ functions.php 今回は3つのリストメニュ

記事を読む

Wordpress 自作フォーム (チェックボックスなど)

WordPress 自作フォーム その3(チェックボックスなど)

以前、WordPress 自作フォーム その1の記事で Wordpress で自作フォームを作ってみ

記事を読む

wordpress タイトルの変更

WordPress タイトルの変更

テンプレートタグ the_title(); get_the_title(); WordPress

記事を読む

リビジョンを削除し、テーブルを最適化してDBの容量を削減

WordPress リビジョンを削除し、テーブルを最適化してDBの容量を削減

WordPress リビジョン機能 リビジョンは過去の記事を保存してくれる WordPress の

記事を読む

Wordpress VR Test

WordPress で VR させて、360°のパノラマ画像を表示する

WordPress.com内ショートコードで VR させる WordPress.com内で、VR(

記事を読む

WordPress エラー:Failed to load plugin: table from url https://cdn.tinymce.com/4/plugins/table/plugin.min.js

WordPress エラー:Failed to load plugin: table from url https://cdn.tinymce.com/4/plugins/table/plugin.min.js

WordPress エラーの状態 WordPress 管理画面のテキスト入力欄で(ビジュアルタブの

記事を読む

All-in-One WP Migration で サーバ移動

「All-in-One WP Migration」プラグインで 簡単に WordPress のサーバー移行する手順メモ

1.移行元サイトでのデータエクスポート 「All-in-One WP Migration(公式リン

記事を読む

PHP WordPress wordpress テンプレート

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

WordPress エラー:Failed to load plugin: table from url https://cdn.tinymce.com/4/plugins/table/plugin.min.js
WordPress エラー:Failed to load plugin: table from url https://cdn.tinymce.com/4/plugins/table/plugin.min.js

WordPress エラーの状態 WordPress 管理画面のテキ

wordpress タイトルの変更
WordPress タイトルの変更

テンプレートタグ the_title(); get_the_title

All-in-One WP Migration で サーバ移動
「All-in-One WP Migration」プラグインで 簡単に WordPress のサーバー移行する手順メモ

1.移行元サイトでのデータエクスポート 「All-in-One WP

DNSサーバーとは
ドメインとは?DNSサーバーとは?

ドメインとは? ドメインとは? ドメインとは、インターネット上のネ

javascriptで複数同じ名前のformの値を取得する
javascriptで複数同じ名前のformの値を取得するとエラー Cannot read property ‘value’ of undefined

Javascript で value の値を取得する このようなHT

→もっと見る

    • 202205
      Mon Tue Wed Thu Fri Sat Sun
      1
      2345678
      9101112131415
      16171819202122
      23242526272829
      3031
    にほんブログ村 IT技術ブログへ にほんブログ村 IT技術ブログ PHPへ にほんブログ村 IT技術ブログ WordPressへ
    にほんブログ村 FC2 Blog Ranking
    PAGE TOP ↑