1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

WordPress 自作プラグインの作成方法

Last updated at Posted at 2023-09-08

構成ファイル
plugin
|- main.php
|- templates - subu1.php , subu2.php
|- assets - style.css
|- images - 画像ファイル

main.php
<?php

/*
Plugin Name: プラグインの名前
Description: プラグインの名前
Version: 1.1.1
Author: 製作者
*/

// 直接アクセスされた場合は終了
if (!defined('ABSPATH'))
    exit;

// プラグインのファイルパスとURLを定義
define('MY_PLUGIN_NAME_PATH', plugin_dir_path(__FILE__));
define('MY_PLUGIN_NAME_URL', plugin_dir_url(__FILE__));

// ショートコードを使用して複数のテンプレートファイルを結合して表示するコード
function display_su_bmenu_contents() {
    ob_start(); // バッファリングを開始
    
    // 複数のテンプレートファイルを順番に結合して表示
    include MY_PLUGIN_NAME_PATH . 'templates/subu1.php';
    include MY_PLUGIN_NAME_PATH . 'templates/subu2.php';
    
    return ob_get_clean(); // バッファの内容を取得して出力
}
add_shortcode('display_submenus', 'display_su_bmenu_contents');


// 管理画面メニューの追加とコンテンツの表示
function wp__add_menu()
{
    add_menu_page(
        'メニュー',// ページのタイトルタグ<title>に表示されるテキスト
        'メニュー',// 左メニューとして表示されるテキスト
        'manage_categories',// 必要な権限 manage_options:管理者のみ manage_categories:管理者+編集者
        'wp_mainmenu',// メニューのスラッグ名 URLのパラメータ /wp_-admin/admin.php?page=wp__menu
        'wp_mainmenu_page_contents',// メニューページを表示する際に実行される関数
        'dashicons-menu',// プラグインのアイコン https://developer.wordpress.org/resource/dashicons/#menu
        65// メニューが表示される位置のインデックス(0が先頭) 5=投稿,10=メディア,20=固定ページ,25=コメント,60=テーマ,65=プラグイン,70=ユーザー,75=ツール,80=設定
    );

    add_submenu_page(
        'wp_mainmenu',// 親メニューのスラッグ
        'サブメニュー1',// ページのタイトル
        'サブメニュー1',// サブメニューに表示されるテキスト
        'manage_categories',// 必要な権限
        'wp_mainmenu',// ページのスラッグ(URLで使用)
        'wp_mainmenu_page_contents', // ページのコンテンツを出力する関数
        0
    );

    add_submenu_page(
        'wp_mainmenu',
        'サブメニュー2',
        'サブメニュー2',
        'manage_options',
        'wp_subu2',
        'wp_subu2_page_contents',
        1
    );
}
add_action('admin_menu', 'wp__add_menu');

// CSSファイルを読み込む
function wp_enqueue_styles()
{
    wp_enqueue_style('wp-plugin-style', MY_PLUGIN_NAME_URL . 'assets/style.css');
}
add_action('admin_enqueue_scripts', 'wp_enqueue_styles');

// メニューページのコンテンツ表示
function wp_mainmenu_page_contents()
{
    // メインメニューページのコンテンツ
    include MY_PLUGIN_NAME_PATH . 'templates/subu1.php';
}

function wp_subu2_page_contents()
{
    // サブメニューSNSのコンテンツ
    include MY_PLUGIN_NAME_PATH . 'templates/subu2.php';
}


1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?