Skip to content

wp-content-framework/admin

Repository files navigation

WP Content Framework (Admin module)

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

WP Content Framework のモジュールです。

Table of Contents

Details

要件

  • PHP 5.6 以上
  • WordPress 3.9.3 以上

インストール

composer require wp-content-framework/admin

依存モジュール

基本設定

  • configs/config.php
設定値 説明
main_menu_title 管理画面のメニュー名(空でプラグイン名) [default = '']
menu_image 管理画面のメニューアイコンを指定(空で歯車マーク) [default = '']
suppress_setting_help_contents ヘルプを非表示にするかどうかを設定 [default = false]
setting_page_title 管理画面のメニューのタイトル [default = Dashboard]
setting_page_priority 管理画面のメニューの優先順位 [default = 0]
setting_page_slug 管理画面のメニューのslug [default = setting]
action_links アクションリンクの追加
plugin_row_meta プラグイン情報リンクの追加
twitter ツイッターのアカウントを指定(ダッシュボード 及び ヘルプに表示されます。空で未使用) [default = '']
detail_url 詳細リンクを指定(ダッシュボードに表示されます。空で未使用) [default = '']
github_repo Githubのリポジトリを指定(ダッシュボード 及び エラー時の画面に表示されます。空で未使用) [default = '']
contact_url プラグインのお問い合わせ用のページのURLを指定(ダッシュボードのヘルプに表示されます。空で未使用) [default = '']
github Githubのアカウントを指定(ダッシュボードのヘルプに表示されます。空で未使用) [default = '']

画面の追加

  • src/classes/controllers/admin に PHP ファイル (例:test.php) を追加
<?php

namespace Example_Plugin\Classes\Controllers\Admin;

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

class Test extends \WP_Framework\Classes\Controllers\Admin\Base {

	// タイトル
	public function get_page_title() {
		return 'Test';
	}

	// GET の時に行う動作
	protected function get_action() {

	}

	// POST の時に行う動作
	protected function post_action() {
		$aaa = $this->app->input->post( 'aaa' );
		// ...
	}

	// GET, POST 共通で行う動作
	protected function common_action() {
		// wp_enqueue_script('media-upload');
	}

	// view に渡す変数設定
	public function get_view_args() {
		return array(
			'test' => 'aaaa',
		);
	}
}

POST の時に行う動作は事前にnonce checkが行われます。

  • src/views/admin に PHP ファイル (例:test.php) を追加
<?php

if ( ! defined( 'EXAMPLE_PLUGIN' ) ) {
	return;
}
/** @var \WP_Framework\Interfaces\Presenter $instance */
/** @var string $test */
?>

<?php $instance->form( 'open', $args ); ?>

<?php $instance->h( $test ); ?>
<?php $instance->form( 'input/submit', $args, array(
	'name'  => 'update',
	'value' => 'Update',
	'class' => 'button-primary'
) ); ?>

<?php $instance->form( 'close', $args ); ?>
  • $instance

    • h:esc_html
    • dump:var_dump
    • id
    • form
    • url
    • img
  • ヘルプの追加

    • src/classes/controllers/admin に追加した上記 PHP ファイル に以下を追記
protected function get_help_contents() {
    return array(
        array(
            'title' => 'Test',
            'view'  => 'test',
        )
    );
}
    • src/views/admin/help に PHP ファイル (例:test.php) を追加
<?php

if ( ! defined( 'EXAMPLE_PLUGIN' ) ) {
	return;
}
/** @var \WP_Framework\Interfaces\Presenter $instance */
?>

test

アクションリンクの追加

action links

配列で指定します。

設定値 説明
url リンク または リンクを返す関数 (string or closure, required)
label リンクのテキスト または リンクのテキストを返す関数 (string or closure, required)
new_tab 新しいタブで開くかどうか (bool, optional)

プラグイン情報リンクの追加

plugin row meta

配列で指定します。

設定値 説明
url リンク または リンクを返す関数 (string or closure, required)
label リンクのテキスト または リンクのテキストを返す関数 (string or closure, required)
new_tab 新しいタブで開くかどうか (bool, optional)

Author