YouTubeやってます!
Categories未だ未分類

WordPressの投稿一覧の日付表示を修正してやった

Date 2009/11/17 15:29  Modified date 2012/06/11 Author Yutaka  Tags Tips WordPress

 WordPressでは管理画面の「投稿」で投稿の一覧を見ることが出来ます。前々から、この一覧にある日付の表示が分かりにくいなぁ、と思っていたのですが、これをちょっといじってみることにしました。修正してやるー!

 WordPressで記事を書いたことのある人なら分かると思いますが、WordPressでは管理画面にある「投稿」で記事の一覧が見られるようになっています。そして、一覧には日付も表示されるようになっています。

WordPressの記事一覧

 こんな風に。
 この日付の部分、24時間以内に投稿された記事は「n時間前」と表示されるようになっています。これ、すごく分かりにくくないですか?そう思っているのはicoroの2人だけ?普通に日時を表示してくれたほうが良いのですが。
 一応、日付の上にカーソルを置いてしばらく待つと、「2009年11月17日 9:00:00 AM」というように日時がポップアップ表示(?)されるのですが、いちいちそんなことをするのはめんどくさいわけで。しかも、日頃、24時間表記で行動している自分にとって、AM・PM表示は分かりにくい。あと、秒数はなくてもいい。

 ということで、ソースいじって以下のように修正しました。

WordPressの記事一覧

 時間を表示するようにしたついでに、「公開済み」の文字は緑色で、「予約済み」の文字は灰色で、それぞれ表示するようにしました。
 「かなり分かりやすくなった」とicoro内では評判です。

ソースコード

 編集したのは「wp-admin/includes/template.php」の中にある関数 _post_rowです。変更内容は以下の通り。コメントアウトしてあるのはオリジナルのコードです。

		case 'date':
			if ( '0000-00-00 00:00:00' == $post->post_date && 'date' == $column_name ) {
//				$t_time = $h_time = __('Unpublished');
				$t_time = __('Unpublished');
//				$time_diff = 0;
			} else {
//				$t_time = get_the_time(__('Y/m/d g:i:s A'));
				$t_time = get_the_time(__('Y/m/d G:i'));
				$m_time = $post->post_date;
				$time = get_post_time('G', true, $post);

				$time_diff = time() - $time;

//				if ( $time_diff > 0 && $time_diff < 24*60*60 )
//					$h_time = sprintf( __('%s ago'), human_time_diff( $time ) );
//				else
//					$h_time = mysql2date(__('Y/m/d'), $m_time);
			}

			echo '<td ' . $attributes . '>';
//			if ( 'excerpt' == $mode )
				echo apply_filters('post_date_column_time', $t_time, $post, $column_name, $mode);
//			else
//				echo '<abbr title="' . $t_time . '">' . apply_filters('post_date_column_time', $h_time, $post, $column_name, $mode) . '</abbr>';
			echo '<br />';
			if ( 'publish' == $post->post_status ) {
//				_e('Published');
				echo '<span style="color:green;">' . __('Published') . '</span>';
			} elseif ( 'future' == $post->post_status ) {
				if ( $time_diff > 0 )
					echo '<strong class="attention">' . __('Missed schedule') . '</strong>';
				else
//					_e('Scheduled');
					echo '<span style="color:#999;">' . __('Scheduled') . '</span>';
			} else {
				_e('Last Modified');
			}
			echo '</td>';
		break;

 コアにはあんまり手を入れたくないのですが、仕方なく手を入れているところが幾つかあります。まあ、不満な場所があっても(知識さえあれば)自分で直せるというのが、オープンソースの良いところ。ということで。

Back to Top