HTML,CSS,PHP,ワードプレスカスタマイズ 技術情報資料

ワードプレスのダッシュボードにメニューを追加 アイコンを Awesomeで作る

スポンサーリンク




ダッシュボードのメニューにプラグインの項目を表示したくなる時があります。

←ここね。

これには、
add_menu_page という関数を使います。

add_menu_page の書式は以下の通り
function unk_admin_menu_content()
{
	echo 'unk_admin_menu_content';
}
function unk_admin_menu()
{
	add_menu_page(
		'ページタイトル',			// ページタイトル
		'メニュータイトル',			// メニュータイトル
		'manage_options',			// 権限
		'unk_adminmenu',			// メニュースラッグ
		'unk_admin_menu_content',		// 呼び出し関数
		'',					// アイコンURL 
		'50'					// 表示位置
	);
}
add_action('admin_menu', 'unk_admin_menu');
※unk_admin_menu は、任意の名前

とりあえず、これを function.php に張り付ければ、ダッシュボードのメニューに「メニュータイトル」の項目が表示されます。

中味は、呼出し関数で指定した「unk_admin_menu_content」に書き込みます。

アイコンは、dashicons フォントのアイコンが指定できます。
⇒ dashicons アイコン一覧

例えば、こんな感じ。
‘dashicons-performance’, // アイコンURL


メニュー項目のアイコンにAwesomeフォントのアイコンを使う


メニュー項目のアイコンにAwesomeフォントのアイコンを使う場合は以下のようにスタイルシートを準備しないといけないです。

とりあえず Awesomeフォントで書いていますけど、フォントファミリーを変えれば、好きなフォントのアイコンを使えるようになります。

もちろん、フォントファイルは、ワードプレスにインストールしていないといけませんけど。


こんな感じで書きます。
//スタイルシートを読み込む
function unk_style()
{
    wp_register_style( 'custom_wp_menu_css', plugin_dir_url( __FILE__ ) . '/unk.css', false, '1.0.0' );
    wp_enqueue_style( 'custom_wp_menu_css' );
}
add_action( 'admin_enqueue_scripts', 'unk_style' );
//ダッシュボードメニューの定義
function unk_admin_menu()
{
	$menu_id = 
	add_menu_page(
		'ページタイトル',			// ページタイトル
		'メニュータイトル',			// メニュータイトル
		'manage_options',			// 権限
		'unk_adminmenu',			// メニュースラッグ
		'unk_admin_menu_content',		// 呼び出し関数
		'none',					// アイコンURL (Awesome)
		'50'					// 表示位置
	);
}
add_action('admin_menu', 'unk_admin_menu');

アイコンURLは、none にしておきます。
つまりadd_menu_pageに表示戦でいいわって指示するわけです。

スタイルシートはこう書きます。
/* menu icon */
#adminmenu .toplevel_page_unk_adminmenu div.wp-menu-image:before {
    font-family: 'FontAwesome' !important;
    content: "\f207";
}
書き換えるのは、.toplevel_page_unk_adminmenu という名前。
‘.toplevel_page_’までは、デフォルト、以降にメニュースラッグ(unk_adminmenu)を指定します。

つまり、add_menu_pageでのアイコン指定をやめさせて、自分のスタイルシートで #adminmenu 以下のクラスでスタイルをきめてやるということです。

この方法を使うとアイコンだけじゃなくアイコン部分の色も変えることができます。


ダッシュボードメニューでの表示位置の指定


ダッシュボードメニューでの表示位置の指定は、この部分です。

’50’// 表示位置

この数字は、次の表のようにセパレーター位置を基準にしてきめてやります。
  • 2 Dashboard ダッシュボード
  • 4 Separator(セパレータ)
  • 5 Posts 投稿
  • 10 Media メディア
  • 15 Links リンク
  • 20 Pages 固定ページ
  • 25 Comments コメント
  • 59 Separator(セパレータ)
  • 60 Appearance外観(テーマ)
  • 65 Plugins プラグイン
  • 70 Users ユーザー
  • 75 Tools ツール
  • 80 Settings 設定
  • 99 Separator(セパレータ)

ワードプレスのダッシュボードに追加したメニューへサブメニューを追加する

サブメニューは、親のメニューの追加が成功したことを確認してから add_submenu_page で追加します。
function unk_admin_menu()
{
	$menu_id = 
	add_menu_page(
		'ページタイトル',				// ページタイトル
		'メニュータイトル',			// メニュータイトル
		'manage_options',			// 権限
		'unk_adminmenu',			// メニュースラッグ
		'unk_admin_menu_content',	// 呼び出し関数
		//'dashicons-performance',	// アイコンURL (dashicons)https://elearn.jp/wpman/column/c20170626_01.html
		'none',						// アイコンURL (Awesome)
		'50'						// 表示位置
	);
    if( $menu_id !== false ){
        add_submenu_page(
			'unk_adminmenu',			// 親メニュースラッグ
			'UNK submenu1',				// サブメニューページのタイトル
			'UNKMENU_SUB_TITLE1',		// プルダウンに表示されるメニュー名
			'manage_options',			// サブメニューの権限
			'UNKMENU_SUB_SLUG1',		// サブメニューのスラッグ
			'unk_admin_menu_content1'	// 呼び出し関数
		); 
        add_submenu_page(
			'unk_adminmenu',			// 親メニュースラッグ
			'UNK submenu2',				// サブメニューページのタイトル
			'UNKMENU_SUB_TITLE2',		// プルダウンに表示されるメニュー名
			'manage_options',			// サブメニューの権限
			'UNKMENU_SUB_SLUG2',		// サブメニューのスラッグ
			'unk_admin_menu_content2'	// 呼び出し関数
		); 
    }
}
add_action('admin_menu', 'unk_admin_menu');
あとは、それぞれの「呼出し関数」を定義してあげればオッケー。

スポンサーリンク

スポンサーリンク

よく使うタグ

・float クリア
<br clear="all"><div style="clear:both;" class="clearfix"></div>
・角丸め
round-radius
border-radius:5px; -webkit-border-radius:10px; -moz-border-radius:10px;
・div box
overflow:scroll;min-width:300px;max-width:300px;min-height:300px;max-height:300px;
・TEXTAREAリサイズ
resize: vertical;
・サイトURL
home_url() // http://…
if(site_url()==home_url){
$shorturl_yuzu_path = substr(ABSPATH,0,strpos( ABSPATH, substr(site_url(),strlen(home_url()) ) ) ).’/’;
}else{
$shorturl_yuzu_path = ABSPATH.’/’;
}
// /var/…
・WP HOME URL
site_url() // http://…/wp
ABSPATH // /var/…/wp
・プラグイン(自分のDIR追加必要)
plugins_url() // http://…/plugins
WP_PLUGIN_URL // http://…/plugins
WP_PLUGIN_DIR // /var/…/plugins
・使用中のテーマ
get_template_directory_uri() // http://…/theme/xx
get_template_directory() // /var/…/theme/xx
・wp-content
content_url() // http://…/wp-content
WP_CONTENT_DIR // /var/…/wp-content
・画像URLからDIR変換
$pctdir=str_replace(content_url(), WP_CONTENT_DIR,$pcturl);
・パス名分解
$pathData = pathinfo($file);
echo $pathData["dirname"]; // /var/~
echo $pathData["filename"]; // xxx
echo $pathData["extension"]; // txt
echo $pathData["basename"]; // xxx.txt
・画像サイズ
list($width,$height) = getimagesize($url);
if(has_post_thumbnail()){
$thumbnail_id = get_post_thumbnail_id();
$thumbnail_img = wp_get_attachment_image_src( $thumbnail_id , ‘full’ );
$src = $image[0]; //url
$width = $image[1]; //横幅
$height = $image[2]; //高さ
・画像サイズ比率
list($src_w,$src_h) = getimagesize($file);
$dst_w = 600;$dst_h = 0;
$dst_h = ($dst_w!=0)?(intval(($src_h*$dst_w)/$src_w )):(($dst_h!=0)?(intval(($src_w*$dst_h)/$src_h)):0);
・疑似要素順
link visited hover active


特殊文字
シングルクォート : &#39;
ダブルクォート : &quot;
WP設定内表示前処理(htmlタグ許可項目)
$str = str_replace(‘<','&lt;' ,$str);
$str = str_replace(‘>’,’&gt;’ ,$str);
$str = str_replace(‘\”‘,’&quot;’,$str);
$str = str_replace(“\'”,’&#39;’ ,$str);
WO設定項目表示前処理(htmlタグ許可項目)
$str = str_replace(‘\”‘,'”‘,$str);
$str = str_replace(“\'”,”‘”,$str);
・テーマ
get_theme_root_uri()
get_theme_root()
・WP 情報
get_bloginfo( $show )
・Wp config FTP 情報 設置
define( ‘FTP_HOST’, ‘host’ );
define( ‘FTP_USER’, ‘id’ );
define( ‘FTP_PASS’, ‘pw’ );
define( ‘FTP_SSL’, false );
弾に使う
placeholder:ユーザー入力補助

カテゴリー

FB 広告 最適化~グーグルアナリティクスとサーチコンソールの連動のさせかた(必要な分だけ)

FB 広告 最適化~グーグルアナリティクスとサーチコンソールの連動のさせかた(必要な分だけ) FB 広告 最適化にあたって必要になってくるツールがグーグルアナリティクスとサーチコンソール。別にグーグルのアナリティクス、サーチコンソールでなくてもアクセス解析はできるんだけど、グーグルはユーザー囲

FB 広告 最適化~グーグルアナリティクスの使い方(必要な分だけ)

FB 広告 最適化~グーグルアナリティクスの使い方(必要な分だけ) FB 広告 最適化にあたって必要になってくるツールがグーグルアナリティクス。別にグーグルのアナリティクスでなくてもアクセス解析はできるんだけど、グーグルはユーザー囲い込みの為他のアクセス解析では見せな

FB 広告 最適化~グーグルサーチコンソールの使い方(必要な分だけ)

FB 広告 最適化~グーグルサーチコンソールの使い方(必要な分だけ) FB 広告 最適化にあたって必要になってくるツールがグーグルサーチコンソール。別にグーグルのサーチコンソールでなくてもいいんだけど、グーグルはユーザー囲い込みの為他のアクセス解析では見せなくしたキーワ

FB 広告 最適化~グーグルのアクセス解析の基本

FB 広告 最適化~グーグルのアクセス解析の基本 FB広告を最適化するためには、アクセス解析が重要なカギを握ります。FB広告から当該ページに飛んでくるときURLにオプションを付けることができます。このURLにつけたオプションを使ってどの広告から、どん

jQuery ボタンを押しても反応しない

jQuery ボタンを押しても反応しない jQuery の click イベントを使ってボタンを押したら alert を表示する簡単な仕様なのになにも反応しない。一瞬はまってしまうことって・・・ありますよね?例えば、こう書きます。popup.

WP パーマリンク リダイレクト インターナルサーバーエラー

WP パーマリンク リダイレクト インターナルサーバーエラー WP パーマリンクのリダイレクトがインターナルサーバーエラーを起こすようになった。ユーザーさんのサイトなので「なにをしたか」わからない。WP パーマリンク リダイレクト インターナルサーバーエラーのい