Skip to content
WordPress framework
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github feat: update github settings Jun 18, 2019
configs v0.0.51 Mar 29, 2019
src v0.0.58 Jun 15, 2019
tests v0.0.54 May 17, 2019
.gitattributes trivial change Mar 23, 2019
.gitignore first commit Jan 22, 2019
.htaccess first commit Jan 22, 2019
LICENSE fixed: author Mar 3, 2019
README.md fix: README Jun 15, 2019
_config.yml Set theme jekyll-theme-architect Jan 24, 2019
autoload.php v0.0.59 Jun 18, 2019
composer.json #135 Mar 12, 2019
package_base.php v0.0.54 May 17, 2019
package_core.php v0.0.45 Mar 16, 2019
phpunit.xml first commit Jan 22, 2019

README.md

WP Content Framework

License: GPL v2+ PHP: >=5.6 WordPress: >=3.9.3

WordPressのプラグインやテーマ開発用のフレームワークです。

要件

  • PHP 5.6 以上
  • WordPress 3.9.3 以上

手順

プラグインからの利用

  1. プラグインフォルダの作成
    wp-content/plugins フォルダに プラグイン用のフォルダを作成
    例:wp-content/plugins/example

  2. プラグインファイルの作成
    作成したプラグインフォルダに適当なPHPファイル (例:autoload.php) を作成
    標準プラグイン情報
    を参考にプラグインの情報を入力

  3. このライブラリのインストール
    composer を使用してインストールします。
    作成したプラグインフォルダで以下のコマンドを実行します。
    composer require wp-content-framework/core

  4. ライブラリの使用
    作成したプラグインファイルにライブラリを使用する記述を追記します。
    プラグインファイルはおおよそ以下のようなものになります。

<?php
/*
Plugin Name: example
Plugin URI:
Description: Plugin Description
Author: example
Version: 0.0.0
Author URI: http://example.com/
*/

if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

if ( defined( 'EXAMPLE_PLUGIN' ) ) {
	return;
}

define( 'EXAMPLE_PLUGIN', 'Example_Plugin' );

@require_once __DIR__ . DIRECTORY_SEPARATOR . 'vendor' . DIRECTORY_SEPARATOR . 'autoload.php';

WP_Framework::get_instance( EXAMPLE_PLUGIN, __FILE__ );

最終的なプラグインの構成は以下のようなものになります。

example
    |
    - autoload.php
    |
    - functions.php
    |
    - assets
    |
    - configs
    |
    - languages
    |
    - src
       |
        - classes
       |     |
       |     - controllers
       |     |      |
       |     |      - admin
       |     |      |
       |     |      - api 
       |     |
       |     - models
       |     |
       |     - tests
       |
       - views 
           |
           - admin
               |
               - help

テーマからの利用

  1. テーマフォルダの作成
    wp-content/themes フォルダに テーマ用のフォルダを作成
    例:wp-content/themes/example

  2. テーマ用CSSの作成
    作成したテーマフォルダに style.css を作成
    テーマスタイルシート を参考にテーマの情報を入力

  3. このライブラリのインストール
    composer を使用してインストールします。
    作成したプラグインフォルダで以下のコマンドを実行します。
    composer require wp-content-framework/core

  4. ライブラリの使用
    テーマフォルダに functions.php を作成しライブラリを使用する記述を追記します。
    functions.php はおおよそ以下のようなものになります。

<?php
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

if ( defined( 'EXAMPLE_THEME' ) ) {
	return;
}

define( 'EXAMPLE_THEME', 'Example_Theme' );

@require_once __DIR__ . DIRECTORY_SEPARATOR . 'vendor' . DIRECTORY_SEPARATOR . 'autoload.php';

WP_Framework::get_instance( EXAMPLE_THEME, __FILE__ );

最終的なテーマの構成は以下のようなものになります。

example
    |
    - style.css
    |
    - functions.php
    |
    - assets
    |
    - configs
    |
    - languages
    |
    - src
    |  |
    |   - classes
    |  |     |
    |  |     - controllers
    |  |     |      |
    |  |     |      - admin
    |  |     |      |
    |  |     |      - api 
    |  |     |
    |  |     - models
    |  |     |
    |  |     - tests
    |  |
    |  - views 
    |      |
    |      - admin
    |          |
    |          - help
    |
    - header.php
    - footer.php
    - index.php
    - searchform.php
    - sidebar.php
    ...

 
複数のプラグイン及びテーマでこのライブラリを使用する場合、モジュールも含めて最新のものが自動的に使用されます。

モジュール

必要に応じてモジュールを追加します。
いくつかのモジュールは依存関係によって自動的にインストールされます。

  • core
    最新のモジュールの読み込み機能などのコアの機能を提供します。
    • 依存モジュール
      • common
      • cache
  • common
    共通で使用する機能を提供します。
  • cache
    キャッシュ機能を提供します。
    • 関連モジュール
      • cron
        期限切れのキャッシュを定期的に削除する場合に必要です。
  • db
    データベースを扱う機能を提供します。
  • presenter
    描画機能を提供します。
  • view
    共通の描画テンプレートを提供します。
    • 依存モジュール
      • presenter
  • cron
    cron機能を提供します。
  • controller
    コントローラ機能を提供します。
    • 依存モジュール
      • presenter
  • admin
    管理画面に関する機能を提供します。
    • 依存モジュール
      • controller
      • view
  • api
    APIに関する機能を提供します。
    • 依存モジュール
      • controller
  • update
    更新情報を表示する機能を提供します。
    • 依存モジュール
      • presenter
  • update_check
    公式ディレクトリ以外で更新を行う機能を提供します。
  • upgrade
    アップグレードに関する機能を提供します。
    • 関連モジュール
      • log
        アップグレード履歴を保存する場合に必要です。
  • mail
    メール送信機能を提供します。
    • 依存モジュール
      • presenter
  • log
    ログの機能を提供します。
    • 依存モジュール
      • db
      • cron
      • admin
    • 関連モジュール
      • mail
        メールを送信する場合に必要です。
  • post
    投稿を扱う機能を提供します。
  • device
    User Agent の判定などの機能を提供します。
  • editor
    エディタに関連する機能を提供します。
  • social
    ソーシャルログイン機能を提供します。
    • 依存モジュール
      • session
  • session
    セッション機能を提供します。
  • custom_post
    カスタム投稿タイプに関する機能を提供します。
    • 依存モジュール
      • db
      • session
      • admin
      • api
  • test
    テスト機能を提供します。
    • 依存モジュール
      • admin

画面の追加

admin

API の追加

api

filter の追加

今後ドキュメント追加予定

cron の追加

cron

カスタム投稿タイプの追加

custom_post

テストの追加

test

コンフィグ

設定

  • configs/setting.php

設定例:

// priority => 詳細
'10' => array(

    // 設定グループ => 詳細
    'Performance' => array(
    
        // priority => 詳細
        '10' => array(
        
            // 設定名 => 詳細
            'minify_js'  => array(
                // 説明
                'label'   => 'Whether to minify js which generated by this plugin',
                // タイプ (bool or int or float or string)
                'type'    => 'bool', // [default = string]
                // デフォルト値
                'default' => true,
            ),
            'minify_css' => array(
                'label'   => 'Whether to minify css which generated by this plugin',
                'type'    => 'bool',
                'default' => true,
            ),
        ),
    ),
),

設定ページで設定可能になります。
プログラムで使用するには以下のようにします。

$this->apply_filters( 'minify_js' ) // true or false

if ( $this->apply_filters( 'minify_js' ) ) {
    // ...
}

フィルタ

  • configs/filter.php
    今後追加予定

DB

  • configs/db.php
    db

権限

  • configs/capability.php
    今後追加予定

デフォルトの動作の上書き

今後追加予定

基本設定

  • configs/config.php
設定値 説明
required_php_version 動作に必要なPHPの要求バージョン [default = 5.6]
required_wordpress_version 動作に必要なWordPressの要求バージョン [default = 3.9.3]
filter_separator filter prefix の separator [default = '/']
  • configs/settings.php
設定値 説明
admin_menu_position 管理画面のメニューの表示位置

サンプルプラグイン

関連記事提供用プラグイン
Gutenberg用文字修飾 プラグイン
Marker Animation プラグイン
Yahoo! API を使用した校正支援プラグイン
Gutenbergのブロックを一時的に非表示にするプラグイン
Gutenbergのブロック検索キーワードを設定するプラグイン
CSRF検知プラグイン
Contact Form 7 拡張用プラグイン
Gutenberg サンプル用プラグイン

Author

GitHub (Technote)
Blog

You can’t perform that action at this time.