Contributors: LIG inc
Version: 0.2.0
License: GPLv2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Tags: scratch
WordPress helper functions.
LIG WordPress Template, Copyright 2019 LIG inc LIG WordPress Template is distributed under the terms of the GNU GPL.
LIG WordPress Template bundles the following third-party resources:
_s, Copyright 2015-2018 Automattic, Inc. License: GPLv2 or later Source: https://github.com/Automattic/_s/
normalize.css, Copyright 2012-2016 Nicolas Gallagher and Jonathan Neal License: MIT Source: https://necolas.github.io/normalize.css/
├── autoload
│ ├── 00_laravel-mix-boilerplate.php // mix関数
│ ├── 01_constants.php // 定数を定義
│ ├── 02_import_functions.php // テンプレート読み込みを定義
│ ├── 03_utitility.php //
│ ├── 04_security.php //
│ ├── 05_posttype_taxonomy.php //
│ ├── 07_wp_head.php
│ ├── 09_mutibyte_patch.php
│ ├── 10_404.php
│ ├── 11_media.php
│ ├── 11_pagination.php
│ ├── 12_json-ld.php
│ ├── 20_disable_comment.php
│ ├── 25_admin_bar_menus.php
│ ├── 30_admin_utility.php
│ ├── 35_gutenberg.php
│ ├── 50_login.php
│ └── 99_acf_auto_export_import.php
├── class
│ └── LIG_YOAST_SETTINGS.php
├── config
│ └── LIG_YOAST_CONFIG.php
├── extra
│ ├── 04_utility_extra.php
│ ├── 06_query_hooks.php
│ ├── 31_disable_default_post_type.php
│ ├── 55_acf.php
│ ├── 55_yoast.php
│ ├── 60_admin_utility_extra.php
│ ├── 9999_dummy_post.php
│ ├── 99_category_pages.php
│ ├── 99_excerpt.php
│ ├── 99_html_compression.php
│ ├── 99_lightsail_cdn.php
│ ├── 99_mw_form.php
│ ├── 99_rewrite_hooks.php
│ └── 99_yoast_settings.php
├── lib
│ └── admin
│ ├── css
│ │ ├── gutenberg.css
│ │ └── gutenberg_hack.css
│ └── js
│ ├── gutenberg_filters.js
│ ├── lightsail_cdn.js
│ └── yoast_cache_clear.js
└── vendor.php
laravel-mix-boilerplate でのビルドが出力する manifest.json を元にキャッシュバスティングされたパスを返す
$path はプロトコルから指定する
mix のショートハンド
$path にはテーマディレクトリからのパスを渡す
使用例
<?= mix('/assets/images/logo.png') ?>
各種定数を定義
init にフックしているため、それ以前の呼び出しではエラーになる
テンプレート読み込みの関数・そのヘルパー関数を定義
$tpl はテーマからの相対パスを指定する
拡張子は自動で php がつくため不要
$vars
にはパーツ内に渡したい変数を配列で指定する
キーが変数名、値が値となる
使用例
<?php
import_template('modules/two-column',[
'modifier' => 'wide',
'post' => $post
]);
?>
import_template()
のショートハンド
$tpl はテーマ直下の parts ディレクトリからの相対パスを指定する
拡張子は自動で php がつくため不要
使用例
<?php import_part('article') ?>
$vars
のキーを$whitelist
でフィルタリングする
$whitelist
にはデフォルト値を指定する
主に、読み込まれたパーツ側で使用する
デフォルトでmodifier
とadditional
が付与される
使用例
<?php
/**
* parts/article.php
*
* 呼び出し元から$post, $taxonomyが渡される想定
*
* 定義されている変数をホワイトリストでフィルタリング
* ホワイトリストに存在しない変数は$defaultに指定した値をセット
* キー名を変数名として展開する
*/
$default = [
'post' => $_GLOBALS['post'], // $postが空だった場合は$_GLOBALS['post']を参照する
'taxonomy' => ''
];
extract(import_vars_whitelist(get_defined_vars(),$default));
?>
ユーティリティ関数群を定義
$bool
にtrue
を渡すとtarget="_blank" rel="noopener noreferrer"
が返却される
使用例
<a href="https://example.com"<?= is_blank(true) ?>>google</a>
$bool
にtrue
を渡すと is-current
が返却される
使用例
<?php
// TOPページだったらis-currentを付与する
?>
<a href="<?= URL_HOME ?>" class="<?= is_current(is_front_page()) ?>">TOP</a>
$class_name
にベースとなるクラス名、$modifier
にモディファイヤを文字列または配列で指定する
使用例
<p class="<?= get_modified_class('text', 'blue') ?>">hoge</p>
<?php
// 出力結果
// <p class="text text--blue">hoge</p>
?>
<p class="<?= get_modified_class('text', ['red','bold']) ?>">fuga</p>
<?php
// 出力結果
// <p class="text text--red text--bold">fuga</p>
?>
$additional
に追加したいクラス名を文字列または配列で指定する
主にインポートされたパーツの中で使用する
使用例
<p class="<?= get_additional_class('hoge') ?>">hoge</p>
<?php
// 出力結果
// <p class="hoge">hoge</p>
?>
<p class="<?= get_additional_class(['hoge','fuga']) ?>">fuga</p>
<?php
// 出力結果
// <p class="hoge fuga">fuga</p>
?>
body_class
にフィルターをかける
wp-config.php
に定義した定数WP_ENVIRONMENT_TYPE
を判定し、ブール値を返却する
WP_ENVIRONMENT_TYPE
がlocal
の場合 true を返却
WP_ENVIRONMENT_TYPE
がdevelopment
の場合 true を返却
WP_ENVIRONMENT_TYPE
がstaging
の場合 true を返却
WP_ENVIRONMENT_TYPE
がproduction
の場合 true を返却
セキュリティ周りのヘルパー関数軍、及びフックなど
$str
を HTML エンティティして返却
レスポンスヘッダーから PHP バージョンを削除
レスポンスヘッダーから、X-Pingback を削除
レスポンスヘッダーから REST API のエンドポイントを削除 Ï
wp_head
から WordPress のバージョン情報を削除
XML-RPC 機能を無効化
ログイン URL の自動リダイレクトを禁止
著者アーカイブページを無効化
開発版、マイナー、メジャー、すべての WordPress の自動更新を無効化
投稿タイプやタクソノミーの登録など
カスタム投稿タイプで title-tag とアイキャッチを有効化させる
カスタム投稿タイプ・カスタムタクソノミーを追加する
wp_headのフィルター用
/assets/svg/
内の svg ファイルをインラインで返却
// /assets/svg/logo.svg をインラインで出力
<?= get_svg('logo') ?>
/assets/svg/
内の svg ファイルを img タグとして返却
$opt に'base64'=>true
を渡すことによりsrc="{base64化されたsvg}"
として出力することもできる
width
とheight
を指定しないと、svg の viewBox から取得しようと試みる
$opt のデフォルト
$default_opt = [
'base64' => false,
'alt' => '',
'class' => '',
'id' => '',
'widht' => '',
'height' => '',
];
// /assets/svg/logo.svg をimgタグとして出力
// svgはbase64化することによりhttpリクエストを発生させない
<?= get_svg_img('logo',[
'base64' => true,
'alt' => 'ロゴ',
'class' => 'logo-img',
'id' => 'logo',
'widht' => '200'
'height' => '100',
]) ?>
svg スプライトの指定された箇所を use で返却する
第一引数に svg-sprite.svg の id 名を指定する
// svg-sprite.svg#logoを出力
<?= get_svg_sprite('logo') ?>