Wordpress content framework


README

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

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

Table of Contents

Details

要件

  • 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
  • configs/settings.php

サンプルプラグイン

Author