タグ: wp-admin

  • WordPress 管理画面の投稿一覧にアイキャッチを表示すると見やすい。そして野良プラグイン化。

    WordPress 管理画面の投稿一覧にアイキャッチを表示すると見やすい。そして野良プラグイン化。

    WordPress の管理画面から見られる投稿の一覧にアイキャッチがあれば便利だなーと思ったので実装。

    パッと見てわかるようになりますよ。

    2014.03.13 いらない消し忘れたコードあったので修正しました

     

    使ったフック

    投稿のカラムを触るフックたち。

    Codex にはお世話になってます。

     

    投稿一覧にアイキャッチを表示するために実装したコード

    以前、投稿一覧に ID を出力するってやつを書いたんですが、似た感じです。

    今回はアイキャッチだけ。

    // カラムタイトルにフック
    add_filter( 'manage_posts_columns', 'add_thumb_columns' );
    // 各カラム行にフック
    add_action( 'manage_posts_custom_column', 'add_thumb_column', 10, 2 );
    
    /**
     * 投稿一覧の行タイトルに thumb を配列キーとした dashicon を追加
     *
     * @param $columns
     *
     * @return mixed
     */
    function add_thumb_columns( $columns ) {
    	// サムネイル用のスタイル
    	echo '<style>.column-thumb{width:80px;}</style>';
    
    	// サムネイルをカラム先頭に追加するため array_reverse で挟み込んで追加
    	$columns          = array_reverse( $columns, true );
    	$columns['thumb'] = '<div class="dashicons dashicons-format-image"></div>';
    	$columns          = array_reverse( $columns, true );
    
    	return $columns;
    }
    
    /**
     * 投稿一覧の各行にサムネイル出力
     *
     * @param $column
     * @param $post_id
     */
    function add_thumb_column( $column, $post_id ) {
    	switch ( $column ) {
    		// 行のキーが thumb なら アイキャッチ を出力
    		case 'thumb':
    			// アイキャッチがある場合
    			if ( $thumb = get_the_post_thumbnail( $post_id, array( 80, 80 ) ) ) {
    				// 編集権限、ゴミ箱内かどうかの判別用変数
    				$user_can_edit = current_user_can( 'edit_post', $post_id );
    				$is_trash      = isset( $_REQUEST['status'] ) && 'trash' == $_REQUEST['status'];
    				// 編集権限があり、ゴミ箱でないなら画像をリンクつきに
    				if ( ! $is_trash || $user_can_edit ) {
    					$thumb = sprintf( '<a href="%s" title="%s">%s</a>',
    						get_edit_post_link( $post_id, true ),
    						esc_attr( sprintf( __( 'Edit &#8220;%s&#8221;', 'default' ), _draft_or_post_title() ) ),
    						$thumb );
    				}
    				// 出力
    				echo $thumb;
    			}
    			break;
    		default:
    			break;
    	}
    }

     

    とまぁテーマの functions.php に書くならこんな感じで。

    ちなみに WordPress 3.8未満だと Dashicon がないので適宜置き換えてください。

     

    できあがり

    うむ、見やすい。

    Admin_Posts_add_thumbnail_WordPress
    WordPress 管理画面の投稿一覧にアイキャッチが表示される!

     

    野良プラグイン化しました

    テーマに書くのはもうめんどうだ、という方へ。

    野良プラグイン化しました。

    公式に登録するほどの機能ではないので。(あと、ただただめんどくさい

    野良プラグインを安易に入れることは危険なので、そのへん了承して使ってくれたらいいと思います。

    投稿一覧+アイキャッチプラグイン: add-thumb2-admin-posts_v1.1.zip

    インストールして有効化するだけです。

     

    ホホまとめ

    いろいろなところへ簡単に手を加えられる WordPress、楽しいですね。

    難点は記事におこすこと。

    やったことは漏れなく書いていきたいなーなんて。

  • WordPress ログイン中の管理画面・管理バーで読み込まれる open-sans ウェブフォントは個人的に不要なので無効化するコードを書いて実装した。

    WordPress ログイン中の管理画面・管理バーで読み込まれる open-sans ウェブフォントは個人的に不要なので無効化するコードを書いて実装した。

    WordPress 3.8 から管理画面のデザインが一新されました。

    それに伴い、管理画面のフォントは open-sans ウェブフォントがデフォルト指定になり。

    あいにくぼくは日本語ユーザーですので、管理画面内のフォントは 9割方日本語。

    open-sans 別にいらないじゃん」

    と考えたため無効化することに。

     

    コアファイルを探す

    無効化するために WordPress 内を grep。

    /wp-include/script-loader.php 内、wp_default_styles にて発見。

    function wp_default_styles( &$styles ) {
    
    	~中略~
    
    	$styles->add( 'open-sans', $open_sans_font_url );
    
    	~中略~
    
    }

     

    これをフック使って取り除けばいい、と。

     

    フック

    フックは wp_default_styles 。

    Codex http://codex.wordpress.org/Plugin_API/Action_Reference/wp_default_styles はまだ書かれていないようです。

    function hoge( &$styles ) {
    	// 処理
    }
    add_action( 'wp_default_styles', 'hoge' );

     

    こういう感じで実行です。

     

    open-sans を無効化するコード

    やってることは

    • 関数作成
    • 処理を記述
    • フックを登録

    というところ。

    // 管理バー open-sans ウェブフォントを無効化
    function disable_load_opensans ( &$styles ) {
    	$styles->remove( 'open-sans' );
    	$styles->add( 'open-sans', null );
    }
    add_action( 'wp_default_styles', 'disable_load_opensans' );

     

    functions.php にコピペでオッケーです。

    ちなみに open-sans、引数を null で再度追加しているのは、open-sans をハンドルとして動いてる他の css があるからです。

     

    日本語以外の多言語環境も考慮すると

    日本語環境前提で書きましたが中には多言語環境で使ってるかも。

    ということで WordPress が日本語で動いてる時だけ実行するようにすると

    // 日本語環境で動いてる場合
    if ( get_locale() === 'ja' ) {
    	// 管理バー open-sans ウェブフォントを無効化
    	function disable_load_opensans ( &$styles ) {
    		$styles->remove( 'open-sans' );
    		$styles->add( 'open-sans', null );
    	}
    	add_action( 'wp_default_styles', 'disable_load_opensans' );
    }

     

    こうなりました。

     

    まとめ

    フックをある程度コアのソースを見て使えるようになるとできることが飛躍的に増えてうれしいです。

    というか、こういうのをまとめたプラグインを作ったらいいんですねきっと。