今日もWordPressの記事です。今日は、クライアントワークで、納品物としてWordPressを使うときに覚えておくと便利な管理画面をカスタマイズ出来るコードのまとめです。ほとんど地味な施工ですけど。
今日はクライアントワーク向けの管理画面カスタマイズコードをいろいろご紹介します。こちらも、昨日お知らせしたWordPressスニペットに掲載しますのでそちらでもご確認頂けます。と言うわけで宣伝でした。
WordPressスニペット
まだ未完成ですけど暇を見て使いやすく出来たらなぁと思います。
更新をWebに疎いクライアントさん側で行うのであれば、管理画面の利便性の向上は更新モチベーションに繋がりますし、工数分の売り上げ増加にも繋げられます。地味だけど、覚えて置いて損はありません。
では、コードいろいろです。コピペはあまり良く無いですけど、今日はまとめ記事なのでコードの解説は割愛させてください。
管理画面の右上の「ヘルプ」を非表示
デフォルトで用意されている「ヘルプ」の内容はWebに疎い方にとっては混乱の種になりがちです。この際、非表示にしてしまいましょう。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php
function disable_help_link() {
echo '<style type="text/css">
#contextual-help-link-wrap {display: none !important;}
</style>';
}
add_action('admin_head', 'disable_help_link');
?>
<?php
function disable_help_link() {
echo '<style type="text/css">
#contextual-help-link-wrap {display: none !important;}
</style>';
}
add_action('admin_head', 'disable_help_link');
?>
管理画面の左メニューにオリジナルの項目とコンテンツを追加
ヘルプを消してしまえば混乱は招きませんが、使い方が分からない、という問題は解決できていません。そこで、メイン操作となる左メニュー内にオリジナルの項目を増やして使い方を書いてあげるといいかもしれません。
サンプルコードでは直接書いていますが、別途ファイルを用意して読み込むのもいいですね。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php
function test_menu_page() {
$siteurl = get_option( 'siteurl' );
?>
<div class="wrap">
<h2>ヘルプです</h2>
<p>コンテンツ</p>
</div>
<?php
}
function test_admin_menu() {
add_menu_page( '管理画面のヘルプ', '管理画面のヘルプ', 'read',
__FILE__, 'test_menu_page' );
}
add_action( 'admin_menu', 'test_admin_menu' );
?>
<?php
function test_menu_page() {
$siteurl = get_option( 'siteurl' );
?>
<div class="wrap">
<h2>ヘルプです</h2>
<p>コンテンツ</p>
</div>
<?php
}
function test_admin_menu() {
add_menu_page( '管理画面のヘルプ', '管理画面のヘルプ', 'read',
__FILE__, 'test_menu_page' );
}
add_action( 'admin_menu', 'test_admin_menu' );
?>
ダッシュボードにオリジナルのボックスを追加
オリジナルページを作るほどでも無いならダッシュボードにボックスを追加して簡単に説明してあげるのもいいかもしれません。クライアントさんへの伝言板等にも使えるかもしれませんね。アイデアが広がります。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php
add_action('wp_dashboard_setup', 'my_custom_dashboard_widgets');
function my_custom_dashboard_widgets() {
global $wp_meta_boxes;
wp_add_dashboard_widget('custom_help_widget', '今日のお知らせ', 'dashboard_text');
}
function dashboard_text() {
echo '<p>foo様、こんにちは!今日のお知らせです。<br />今日はお問い合わせが3件ありました。ご返信をお願い致します。</p>';
}
?>
<?php
add_action('wp_dashboard_setup', 'my_custom_dashboard_widgets');
function my_custom_dashboard_widgets() {
global $wp_meta_boxes;
wp_add_dashboard_widget('custom_help_widget', '今日のお知らせ', 'dashboard_text');
}
function dashboard_text() {
echo '<p>foo様、こんにちは!今日のお知らせです。<br />今日はお問い合わせが3件ありました。ご返信をお願い致します。</p>';
}
?>
ダッシュボードのRSSを読み込むボックスのフィードを変える
これはカスタマイズではなく、デフォルトの機能ですが、知らない人が多い印象なのでおまけです。
デフォルトで用意されているボックスの「WordPress 開発ブログ」のタイトルとフィード先は管理画面内で変更可能です。マウスホバーで見出し右側に「設定」と出ますのでクリックすれば上図のような設定項目が出ます。非表示にするより自社ブログに変更した方がお得ですね。
注意を呼びかける
伝言板じゃなくて、常に気をつけて欲しい事がある、という場合は慣れるまでこのように一時的に注意を呼びかけるのも一つの手です。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php
function showMessage($message, $errormsg = false){
if ($errormsg) {
echo '<div id="message" class="error">';
}else {
echo '<div id="message" class="updated fade">';
} echo "<p><strong>$message</strong></p></div>";
}
function showAdminMessages(){
showMessage("【~様へお知らせ】~という記事のリンク先が違うようです。調整をお願い致します。", true);
}
add_action('admin_notices', 'showAdminMessages');
?>
<?php
function showMessage($message, $errormsg = false){
if ($errormsg) {
echo '<div id="message" class="error">';
}else {
echo '<div id="message" class="updated fade">';
} echo "<p><strong>$message</strong></p></div>";
}
function showAdminMessages(){
showMessage("【~様へお知らせ】~という記事のリンク先が違うようです。調整をお願い致します。", true);
}
add_action('admin_notices', 'showAdminMessages');
?>
via:Show an urgent message in the WordPress admin panel
管理画面の左サイドメニューのメニューテキストを任意のテキスト変更
Webに慣れていたり、WordPressを使ったことがある方には分かりますが、初めて触る方はやはり混乱しますし、「クリックしたらどうなるか分からないのが怖い」という理由で更新も疎遠になりがちです。
そこで、メインに利用される左サイドのメニューをクライアントさんにとって分かりやすいテキストに変更してあげましょう。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php
add_filter( 'gettext', 'change_side_text' );
add_filter( 'ngettext', 'change_side_text' );
function change_side_text( $translated ) {
$translated = str_ireplace( 'ダッシュボード', '管理画面TOP', $translated );
$translated = str_ireplace( '投稿', 'ブログを書く', $translated );
$translated = str_ireplace( 'リンク', 'お気に入り', $translated );
$translated = str_ireplace( 'メディア', '画像の管理', $translated );
$translated = str_ireplace( '固定ページ', 'ページ追加', $translated );
$translated = str_ireplace( '外観', 'デザイン管理', $translated );
$translated = str_ireplace( 'ユーザー', 'プロフィール設定', $translated );
$translated = str_ireplace( '設定', '各種設定', $translated );
return $translated;
}
?>
/* $translated = str_ireplace( '元々のテキスト', '置き換えるテキスト', $translated ); */
<?php
add_filter( 'gettext', 'change_side_text' );
add_filter( 'ngettext', 'change_side_text' );
function change_side_text( $translated ) {
$translated = str_ireplace( 'ダッシュボード', '管理画面TOP', $translated );
$translated = str_ireplace( '投稿', 'ブログを書く', $translated );
$translated = str_ireplace( 'リンク', 'お気に入り', $translated );
$translated = str_ireplace( 'メディア', '画像の管理', $translated );
$translated = str_ireplace( '固定ページ', 'ページ追加', $translated );
$translated = str_ireplace( '外観', 'デザイン管理', $translated );
$translated = str_ireplace( 'ユーザー', 'プロフィール設定', $translated );
$translated = str_ireplace( '設定', '各種設定', $translated );
return $translated;
}
?>
/* $translated = str_ireplace( '元々のテキスト', '置き換えるテキスト', $translated ); */
via:
Replace menu text within the admin sidebar menu
管理画面の左サイドメニューから項目削除
項目のテキストを変更しても混乱するようならいっそ不要な物を削除しちゃいましょう。例えばプラグインの項目は概ね不要かと思いますので、消しておけば更新通知も表示されませんので不安にさせないで済みます。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php
add_action( 'admin_menu', 'remove_admin_menu_links' );
function remove_admin_menu_links() {
remove_menu_page('index.php'); // ダッシュボード
remove_menu_page('edit.php'); // 記事投稿
remove_menu_page('upload.php'); // メディア
remove_menu_page('link-manager.php'); // リンク
remove_menu_page('edit.php?post_type=page'); // 固定ページ
remove_menu_page('edit-comments.php'); // コメント
remove_menu_page('themes.php'); // 外観
remove_menu_page('plugins.php'); // プラグイン
remove_menu_page('users.php'); // ユーザー
remove_menu_page('tools.php'); // ツール
remove_menu_page('options-general.php'); // 設定
}
?>
<?php
add_action( 'admin_menu', 'remove_admin_menu_links' );
function remove_admin_menu_links() {
remove_menu_page('index.php'); // ダッシュボード
remove_menu_page('edit.php'); // 記事投稿
remove_menu_page('upload.php'); // メディア
remove_menu_page('link-manager.php'); // リンク
remove_menu_page('edit.php?post_type=page'); // 固定ページ
remove_menu_page('edit-comments.php'); // コメント
remove_menu_page('themes.php'); // 外観
remove_menu_page('plugins.php'); // プラグイン
remove_menu_page('users.php'); // ユーザー
remove_menu_page('tools.php'); // ツール
remove_menu_page('options-general.php'); // 設定
}
?>
via:
21 Most Useful WordPress Admin Page Hacks
管理画面にcssやjsファイルを読み込む
管理画面のデザインのオーダーもあるなら、CSSやjsを読み込みたい、という事もあるかと思います。以下のようにファイルを読み込んでください。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php
function wp_custom_admin_css() {
echo "\n" . '<link href="' .get_bloginfo('template_directory'). '/css/foo.css' . '" rel="stylesheet" type="text/css" />' . "\n";
}
add_action('admin_head', 'wp_custom_admin_css', 100);
?>
<?php
function wp_custom_admin_css() {
echo "\n" . '<link href="' .get_bloginfo('template_directory'). '/css/foo.css' . '" rel="stylesheet" type="text/css" />' . "\n";
}
add_action('admin_head', 'wp_custom_admin_css', 100);
?>
このコードも含めて
wpxtremeさんでいくつかまとまっています のであわせてご覧下さい。
ちょっと余談なんですが、「~を非表示に」とかをわざわざPHPでやってるのを良く見かけますが、非表示にしたいだけならCSSでdisplay:none;にしちゃえばいいんじゃないでしょうかね。管理画面の左上のロゴとか管理バーそのものとか不要なボックスとか。FirebugでIDとかclass確認するだけで済みますしね。反論もあるでしょうけど。
フッターのテキストを任意のテキストに変更
あまり見られる場所ではないですけど、念には念を、という事でフッターも自社への連絡先にしておくと安心してくれるかもしれませんね。やって損する事は無いですし、当たり前のように施工したいところです。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php
function custom_admin_footer() {
echo ' お困りの際は<a href="http://example.com/" target="_blank">弊社</a>までお気軽にお問い合わせ下さい。TEL:03-1234-5678';
}
add_filter('admin_footer_text', 'custom_admin_footer');
?>
<?php
function custom_admin_footer() {
echo ' お困りの際は<a href="http://example.com/" target="_blank">弊社</a>までお気軽にお問い合わせ下さい。TEL:03-1234-5678';
}
add_filter('admin_footer_text', 'custom_admin_footer');
?>
管理画面の「こんにちは、~さん」を変更
管理画面のあいさつ文を変更します。「こんにちは」でもいいんですけど、納品物として自然では無いので変えておくのもいいかも。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php
function replace_hello_text( $wp_admin_bar ) {
$my_account=$wp_admin_bar->get_node('my-account');
$newtitle = str_replace( 'こんにちは、', 'お疲れさまです!', $my_account->title );
$wp_admin_bar->add_node( array(
'id' => 'my-account',
'title' => $newtitle,
) );
}
add_filter( 'admin_bar_menu', 'replace_hello_text',25 );
?>
<?php
function replace_hello_text( $wp_admin_bar ) {
$my_account=$wp_admin_bar->get_node('my-account');
$newtitle = str_replace( 'こんにちは、', 'お疲れさまです!', $my_account->title );
$wp_admin_bar->add_node( array(
'id' => 'my-account',
'title' => $newtitle,
) );
}
add_filter( 'admin_bar_menu', 'replace_hello_text',25 );
?>
投稿画面のタイトルにあるテキストの変更
いわゆるプレースホルダーを設定します。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php
function title_text_input( $title ){
return $title = 'ここに記事の題名を書きます';
}
add_filter( 'enter_title_here', 'title_text_input');
?>
<?php
function title_text_input( $title ){
return $title = 'ここに記事の題名を書きます';
}
add_filter( 'enter_title_here', 'title_text_input');
?>
via:
Change default “Enter title here” text within post title input field
アイキャッチ画像のメタボックスに任意のテキストを含める
アイキャッチ画像と言われてもWebに疎い人にはピンと来ません。ピンとこないと使い方をなかなか覚えられないものです。なので、使い方を書いてあげましょう。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php
add_filter( 'admin_post_thumbnail_html', 'add_featured_image_instruction');
function add_featured_image_instruction( $content ) {
return $content .= '<p>アイキャッチ画像として画像を追加するとサムネイルが表示されるようになります。<br />サイズは横300px、縦200pxになるようにしてください。</p>';
}
?>
<?php
add_filter( 'admin_post_thumbnail_html', 'add_featured_image_instruction');
function add_featured_image_instruction( $content ) {
return $content .= '<p>アイキャッチ画像として画像を追加するとサムネイルが表示されるようになります。<br />サイズは横300px、縦200pxになるようにしてください。</p>';
}
?>
via:
Add or Change Content in the Featured Image Meta Box
投稿エディタのスタイルを変更
投稿エディタのスタイルの変更方法です。上記はメイリオにして背景をグレーにした例。
CSSファイルを追加するのが一番短いコードで済みますが、一応jquery併用の方法も書いておきます。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/////////////////////////CSSファイルを追加//////////////////////////////////////
<?php
//ビジュアルリッチエディタ用のスタイルシートにフォントスタイルを追加する
add_editor_style('admin-style.css');
?>
/////////////////////////jqueryで変更//////////////////////////////////////
add_action( 'admin_head-post.php', 'devpress_fix_html_editor_font' );
add_action( 'admin_head-post-new.php', 'devpress_fix_html_editor_font' );
function devpress_fix_html_editor_font()
{ ?>
<?php
//ビジュアルリッチエディタのフォントをjQueryで変える
<script type="text/javascript">
jQuery(window).load(function() {
jQuery('iframe').contents().find("*").css({ 'font-family': 'Meiryo !important' });
})
</script>
<?php }
?>
/////////////////////////HTMLエディタのスタイルの変更//////////////////////////////////////
<?php
//HTMLエディタのスタイルの変更
add_action( 'admin_head-post.php', 'devpress_fix_html_editor_font' );
add_action( 'admin_head-post-new.php', 'devpress_fix_html_editor_font' );
function devpress_fix_html_editor_font()
{ ?>
<style type="text/css">
#post-body-content ,
.wp-editor-area,
#content_ifr html {
font-family: "メイリオ", "Meiryo", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "MS ゴシック", "Osaka", sans-serif !important;
font-size:16px;}</style>
<?php }
?>
/////////////////////////CSSファイルを追加//////////////////////////////////////
<?php
//ビジュアルリッチエディタ用のスタイルシートにフォントスタイルを追加する
add_editor_style('admin-style.css');
?>
/////////////////////////jqueryで変更//////////////////////////////////////
add_action( 'admin_head-post.php', 'devpress_fix_html_editor_font' );
add_action( 'admin_head-post-new.php', 'devpress_fix_html_editor_font' );
function devpress_fix_html_editor_font()
{ ?>
<?php
//ビジュアルリッチエディタのフォントをjQueryで変える
<script type="text/javascript">
jQuery(window).load(function() {
jQuery('iframe').contents().find("*").css({ 'font-family': 'Meiryo !important' });
})
</script>
<?php }
?>
/////////////////////////HTMLエディタのスタイルの変更//////////////////////////////////////
<?php
//HTMLエディタのスタイルの変更
add_action( 'admin_head-post.php', 'devpress_fix_html_editor_font' );
add_action( 'admin_head-post-new.php', 'devpress_fix_html_editor_font' );
function devpress_fix_html_editor_font()
{ ?>
<style type="text/css">
#post-body-content ,
.wp-editor-area,
#content_ifr html {
font-family: "メイリオ", "Meiryo", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "MS ゴシック", "Osaka", sans-serif !important;
font-size:16px;}</style>
<?php }
?>
via:
How to change WordPress editor font
投稿画面に任意のコンテンツボックスを追加
投稿画面の使い方を伝えるなら投稿画面に書いたほうが親切です。ボックスを追加して好きなコンテンツを作ってみては如何でしょう。ショートコードの使い方、記事投稿の手順など、用途は色々あります。
下記コードの「foo」というのはカスタム投稿タイプを使っている場合に必要なコードです。fooを投稿タイプ名に変更してください。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php
function add_my_box() {
global $post;
echo '<p>ここに好きなコンテンツを入れることが出来ます</p>';
}
function add_my_box_hooks() {
//add_meta_box('my_box', 'タイトル', 'add_my_box', '投稿タイプ', 'normal', 'high');
add_meta_box('my_box', '好きなコンテンツ', 'add_my_box', 'post', 'normal', 'high');
add_meta_box('my_box', '好きなコンテンツ', 'add_my_box', 'page', 'normal', 'high');
add_meta_box('my_box', '好きなコンテンツ', 'add_my_box', 'foo', 'normal', 'high');
}
function add_my_box_init() {
add_action('admin_menu', 'add_my_box_hooks');
}
add_action('init', 'add_my_box_init');
?>
<?php
function add_my_box() {
global $post;
echo '<p>ここに好きなコンテンツを入れることが出来ます</p>';
}
function add_my_box_hooks() {
//add_meta_box('my_box', 'タイトル', 'add_my_box', '投稿タイプ', 'normal', 'high');
add_meta_box('my_box', '好きなコンテンツ', 'add_my_box', 'post', 'normal', 'high');
add_meta_box('my_box', '好きなコンテンツ', 'add_my_box', 'page', 'normal', 'high');
add_meta_box('my_box', '好きなコンテンツ', 'add_my_box', 'foo', 'normal', 'high');
}
function add_my_box_init() {
add_action('admin_menu', 'add_my_box_hooks');
}
add_action('init', 'add_my_box_init');
?>
下層権限ユーザーにカテゴリ作成の権限を与える
クライアントさんには投稿権限だけ与えている、という契約をする制作者さんもいらっしゃると思います。その際、多くの場合はクライアントさんに「投稿者」の権限で利用してもらう事が大半かと思います。
ただ、投稿者はカテゴリを作成出来ません。逐一連絡されるのも大変ですので、作成権限を与えてあげましょう。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php
get_role('author')->add_cap('manage_categories');
?>
<?php
get_role('author')->add_cap('manage_categories');
?>
同じ方法でいろいろ応用できますね。
via:
【編集者に管理パネル設定へのアクセスを許可を与える】
投稿フォーマットのテキストを変更
投稿フォーマット自体ほとんど使われていない気もしますが、個人的には好きなのでおまけ的に書いておきます。テキストを好きな物に変更して使いやすくしてみます。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php
function rename_post_formats( $safe_text ) {
// if ( $safe_text == '元々のテキスト' ) return '変更したいテキスト';
if ( $safe_text == '標準' ) return '通常投稿';
if ( $safe_text == 'アサイド' ) return 'ツイート';
if ( $safe_text == 'リンク' ) return 'Webサイト';
if ( $safe_text == 'ギャラリー' ) return '動画';
if ( $safe_text == 'ステータス' ) return 'コード';
if ( $safe_text == '引用' ) return '名言';
if ( $safe_text == '画像' ) return 'イメージ全般';
return $safe_text;
}
add_filter( 'esc_html', 'rename_post_formats' );
?>
/*既に投稿フォーマットが登録されている必要あり*/
<?php
function rename_post_formats( $safe_text ) {
// if ( $safe_text == '元々のテキスト' ) return '変更したいテキスト';
if ( $safe_text == '標準' ) return '通常投稿';
if ( $safe_text == 'アサイド' ) return 'ツイート';
if ( $safe_text == 'リンク' ) return 'Webサイト';
if ( $safe_text == 'ギャラリー' ) return '動画';
if ( $safe_text == 'ステータス' ) return 'コード';
if ( $safe_text == '引用' ) return '名言';
if ( $safe_text == '画像' ) return 'イメージ全般';
return $safe_text;
}
add_filter( 'esc_html', 'rename_post_formats' );
?>
/*既に投稿フォーマットが登録されている必要あり*/
via:
WordPressの投稿フォーマットのラベル(テキスト)を変更する
カスタム投稿タイプの記事数をダッシュボードに表示
ダッシュボードに記事数が表示されますが、カスタム投稿タイプの項目はありません。必要なら追加してあげましょう。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php
add_action( 'dashboard_glance_items', 'add_custom_post_dashboard_widget' );
function add_custom_post_dashboard_widget() {
$args = array(
'public' => true,
'_builtin' => false
);
$output = 'object';
$operator = 'and';
$post_types = get_post_types( $args, $output, $operator );
foreach ( $post_types as $post_type ) {
$num_posts = wp_count_posts( $post_type->name );
$num = number_format_i18n( $num_posts->publish );
$text = _n( $post_type->labels->singular_name, $post_type->labels->name, intval( $num_posts->publish ) );
if ( current_user_can( 'edit_posts' ) ) {
$output = '<a href="edit.php?post_type=' . $post_type->name . '">' . $num . ' ' . $text . '</a>';
}
echo '<li class="post-count ' . $post_type->name . '-count">' . $output . '</li>';
}
}
?>
<?php
add_action( 'dashboard_glance_items', 'add_custom_post_dashboard_widget' );
function add_custom_post_dashboard_widget() {
$args = array(
'public' => true,
'_builtin' => false
);
$output = 'object';
$operator = 'and';
$post_types = get_post_types( $args, $output, $operator );
foreach ( $post_types as $post_type ) {
$num_posts = wp_count_posts( $post_type->name );
$num = number_format_i18n( $num_posts->publish );
$text = _n( $post_type->labels->singular_name, $post_type->labels->name, intval( $num_posts->publish ) );
if ( current_user_can( 'edit_posts' ) ) {
$output = '<a href="edit.php?post_type=' . $post_type->name . '">' . $num . ' ' . $text . '</a>';
}
echo '<li class="post-count ' . $post_type->name . '-count">' . $output . '</li>';
}
}
?>
via:
WordPress のカスタム投稿タイプの記事数をダッシュボードに一括で表示設定する方法
投稿一覧や固定ページ一覧のテーブルにアイキャッチの列を追加
過去記事の編集の際、記事一覧テーブルに画像があると認識しやすくなります。アイキャッチを使っているなら列を追加してあげるといいですね。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php
if ( !function_exists('AddThumbColumn') && function_exists('add_theme_support') ) {
add_theme_support('post-thumbnails', array( 'post', 'page' ) );
function AddThumbColumn($cols) {
$cols['thumbnail'] = __('Thumbnail');
return $cols;
}
function AddThumbValue($column_name, $post_id) {
$width = (int) 35;
$height = (int) 35;
if ( 'thumbnail' == $column_name ) {
$thumbnail_id = get_post_meta( $post_id, '_thumbnail_id', true );
$attachments = get_children( array('post_parent' => $post_id, 'post_type' => 'attachment', 'post_mime_type' => 'image') );
if ($thumbnail_id)
$thumb = wp_get_attachment_image( $thumbnail_id, array($width, $height), true );
elseif ($attachments) {
foreach ( $attachments as $attachment_id => $attachment ) {
$thumb = wp_get_attachment_image( $attachment_id, array($width, $height), true );
}
}
if ( isset($thumb) && $thumb ) {
echo $thumb;
} else {
echo __('None');
}
}
}
// 投稿
add_filter( 'manage_posts_columns', 'AddThumbColumn' );
add_action( 'manage_posts_custom_column', 'AddThumbValue', 10, 2 );
// 固定ページ
add_filter( 'manage_pages_columns', 'AddThumbColumn' );
add_action( 'manage_pages_custom_column', 'AddThumbValue', 10, 2 );
}
?>
<?php
if ( !function_exists('AddThumbColumn') && function_exists('add_theme_support') ) {
add_theme_support('post-thumbnails', array( 'post', 'page' ) );
function AddThumbColumn($cols) {
$cols['thumbnail'] = __('Thumbnail');
return $cols;
}
function AddThumbValue($column_name, $post_id) {
$width = (int) 35;
$height = (int) 35;
if ( 'thumbnail' == $column_name ) {
$thumbnail_id = get_post_meta( $post_id, '_thumbnail_id', true );
$attachments = get_children( array('post_parent' => $post_id, 'post_type' => 'attachment', 'post_mime_type' => 'image') );
if ($thumbnail_id)
$thumb = wp_get_attachment_image( $thumbnail_id, array($width, $height), true );
elseif ($attachments) {
foreach ( $attachments as $attachment_id => $attachment ) {
$thumb = wp_get_attachment_image( $attachment_id, array($width, $height), true );
}
}
if ( isset($thumb) && $thumb ) {
echo $thumb;
} else {
echo __('None');
}
}
}
// 投稿
add_filter( 'manage_posts_columns', 'AddThumbColumn' );
add_action( 'manage_posts_custom_column', 'AddThumbValue', 10, 2 );
// 固定ページ
add_filter( 'manage_pages_columns', 'AddThumbColumn' );
add_action( 'manage_pages_custom_column', 'AddThumbValue', 10, 2 );
}
?>
wordpress.stackexchange
最後に
明日もWordPress関連の記事と宣伝をさせて頂く予定です。今週はWP週間ですが、宜しくお願い致します。
WordPressスニペット