password付の投稿に、headerを追加する

パスワード付の投稿について、
http://ja.forums.wordpress.org/topic/11498?replies=2(title)
という指摘があり、調べてみると、確かに、no-cacheヘッダーがついていないようでした。

アイディアをメモに残す事にしました。

以下のコードは、シングルページでは、ヘッダーがつきますが、リスト表示の時にはヘッダーがつきません。

ログインした後は、そのブラウザでは一定期間パスワードなしで閲覧できるようになるため、リスト自体がキャッシュされてしまうかもしれません。

実際に利用する場合には、リスト表示の場合は、the_content()などを表示しないような設定などの微調整が必要になると思います。

function password_post_header( $headers,$current_query ) {
	$url = $_SERVER["REQUEST_URI"] ;
	$id = url_to_postid($url) ;
	$post = get_post($id);
	
	if ( !is_admin() ) {
			if ( is_object($post) and !empty($post->post_password) ) {
				$headers= wp_get_nocache_headers();

				foreach($headers as $key=> $val){
						header( "$key : $val" );
				}
					
			}
	}

}

add_action( 'send_headers', 'password_post_header');

[emulsion_relate_posts]