カテゴリー: スニペット,
WordPressでサイトのフィードを一般公開したくない、でも自分用にはアクセスできてゴニョゴニョしたい、という場合。通常はベーシック認証などをかけますが。functions.php とかにコピペ1発でできる簡単なやつでいいんだー という穴があいててオッケーな人用コード。
// 次のようなクエリーでなければフィードを表示しない
// https://example.com/feed?active=1
function feed_force_404( $obj ) {
if ( $obj->is_feed ) {
switch( $obj->query['feed'] ){
case 'feed': $txt = 'feed'; break;
case 'rss': $txt = 'rss'; break;
case 'rss2': $txt = 'rss2'; break;
case 'rdf': $txt = 'rdf'; break;
case 'atom': $txt = 'atom'; break;
}
if ( isset($txt) ) {
$feed_pass = (int)$_GET['active'];
if( $feed_pass !== 1 ){
wp_die( $txt.' is disable', '', array( 'response' => 404 ) );
}
}
}
}
add_action( 'parse_query', 'feed_force_404' );
ズボラです
URLが漏れたらお終いなので大事なサイトはちゃんと鍵をかけましょう
関連記事はまだありません