WordPress の記事一覧で他ユーザーの投稿を非表示にする

http://ja.forums.wordpress.org/topic/15002 への回答例として

他ユーザーの投稿を編集する権限がない場合に、一覧表示から他ユーザーの記事を除外してしまう方法

function exclude_other_posts( $wp_query ) {
	if ( isset( $_REQUEST['post_type'] ) && post_type_exists( $_REQUEST['post_type'] ) ) {
		$post_type = get_post_type_object( $_REQUEST['post_type'] );
		$cap_type = $post_type->cap->edit_other_posts;
	} else {
		$cap_type = 'edit_others_posts';
	}

	if ( is_admin() && $wp_query->is_main_query() && ! $wp_query->get( 'author' ) && ! current_user_can( $cap_type ) ) {
		$user = wp_get_current_user();
		$wp_query->set( 'author', $user->ID );
	}
}
add_action( 'pre_get_posts', 'exclude_other_posts' );
所有 (1) | すべて (7) | 公開済み (4) | 下書き (3)

の数字が合わなくなってしまうのが気になる方は、CSSで .count に display: none; があたるようにしてください。

WordPressの固定ページ一覧に順序の項目を追加する方法

WordPressの固定ページは、ページ属性の順序によってソートされるようになっているのは知られていますが、この項目が固定ページの一覧に表示されていたら、新規追加の際にいくつにすれば良いか分かりやすいですよね?

今回は、そんな固定ページの使い勝手を良くしてくれるコードを紹介します。

“WordPressの固定ページ一覧に順序の項目を追加する方法” の続きを読む

WordPress3.2のダッシュボード高速化について調べてみた

とうとうリリースされたWordPress3.2 ガーシュウィン(コードネーム)。英語版に続いて日本語版も既に公開されています。
今回も新しいデフォルトテーマの Twenty Eleven を初めとして、いくつもの改良がなされています。

その中で、個人的に地味ではあるけどありがたいのが、管理画面(特にダッシュボード)の表示スピードアップです。WordPress.orgの3.2紹介ビデオでの約50秒から1分にかけてのスピードアップについての紹介のくだりを見ていただければ、3.1系と比較して瞬時に表示されていることが見て取れます。

今回は、その手法や仕様について調べて分かったことを書き連ねてみます。

“WordPress3.2のダッシュボード高速化について調べてみた” の続きを読む

WordPressで管理画面の表示言語を変えるプラグインを作ってみた

WordPressで表示する言語を指定するのは、wp-config.phpの WPLANG ですが、英語や中国語のサイトを作成する際、この設定はどのようにしていますか?

ja にして、テーマのlangは直書きにしてしまう or 管理画面は指定言語もしくは英語で我慢する、いずれかのパターンが多いと思いますが、他言語のサイトであっても、私のように外国語は苦手なので、管理画面は日本語にしたいと思う方も沢山いるはず・・・ですよね?ね?

一応、Admin Languageというプラグインがあって、ユーザー毎に管理画面の表示言語を指定でき便利そうなのですが、WP Multibyte Patch と競合したり、日本語リソースファイルを認識しなかったり、マルチサイト用の言語リソースを誤認識したりと、出来が今ひとつだったりします。

そんなこんなで、一般設定で管理画面の表示言語を指定できるようにするプラグインを作ってみました。

“WordPressで管理画面の表示言語を変えるプラグインを作ってみた” の続きを読む