WordPressのRSS出力設定について

ブログランキングサイトなどに作成したブログを登録するにはRSSを出力する必要があります。
WordPressでオリジナルテーマを作った際、RSSを出力(配信)するための設定を行ってみます。

そもそもRSSとは何か。簡単にいうと、外部にサイトの更新情報を通知したり、公開したりする機能。
当サイトのRSS出力は、ブラウザからソースコードを見ると↓のようになっています。

<link rel="alternate" type="application/rss+xml" title="さくらインターネットのVPS設定マニュアル &raquo; フィード" href="https://www.sakura-vps.net/feed/" />
<link rel="alternate" type="application/rss+xml" title="さくらインターネットのVPS設定マニュアル &raquo; コメントフィード" href="https://www.sakura-vps.net/comments/feed/" />

それでは、WordPressでRSSを出力するには、どうすればいいのか。
①functions.phpに設定コードを追加。
②headタグ内にを記述しておくこと。

①functions.phpに設定コードを追加

functions.phpに下記のコードを追加してください。

//RSS出力設定
add_theme_support( 'automatic-feed-links' );

②headタグ内にを記述

WordPressで利用しているテーマ、または作成したテーマのheadタグ内にがあるか確認して下さい。wp_head();は、WordPressで作られたサイトの様々な情報を出力するためのものですが、その出力情報の中にRSSが含まれています。

以上の設定で問題なくRSSが出力されているかブラウザで確認して下さい。
ソースコードにRSSが出力されていれば完了です。

上記設定でRSSが出力されない場合

上記の設定でRSSが出力されない場合には、導入しているプライグインがRSSの出力を妨げている可能性があります。
プラグインがfeed_linksを削除していないか、またはfunctions.phpなどの設定により出力を制御していないか確認をしてください。

知らないドメインのDNSをアクセス制御する

先日、自分が管理しているホームページをGoogle検索してみると不思議なことが起きていた。

自分のホームページと同じ内容(完全同一)のホームページがあるっ!!
画像やHTMLの内容も同じ、しかもPHPで作ったお問い合わせフォームのメール送信先ですら同じ。
ソースの中身も見てみると、ディレクトリ構造も同じ・・・。しかし、ドメイン名だけが違う。

ドメインを調査してみると、海外の管理会社と所有者。英語でメール連絡してみるも応答なし・・・。
こうなれば、Googleにコピーサイトを通報だ!意外と面倒くさい!

そもそも何でこんなことが起きたのだろうか。調べてみるしかない!

・・・はい、実に単純なものでした。
①相手がネームサーバーの設定先を間違えている、または設定をデフォルトから変更していないこと。
②当方のhttp.conf内の設定で、設定したドメイン以外のDNSも受け入れてしまう設定になっていた。

①をこちらで改善することはできないので、②を改善します。

SSHでVPSサーバーにアクセスし、root権限でhttpd.confを編集します。

[root@ ~]# vi /etc/httpd/conf/httpd.conf (httpd設定ファイルの編集)

httpd.conf内のバーチャルホスト記述箇所に下記設定を追記して、保存。

<VirtualHost *:80>
     ServerName any
     <Location />
        Order deny,allow
        Deny from all
     </Location>
</VirtualHost>

設定を有効にするため、httpd.confの再読み込み。

[root@ ~]# service httpd reload (httpd設定ファイルの読み込み)

これで解決!知らないドメインのホームページを見たら、見事に403エラー。

バーチャルホストの設定をしている場合には、この設定をしておかないと、知らないドメインのネームサーバーに間違って(または故意に)指定された場合、このような問題が起こってしまうようだ。
最悪の場合、Googleのペナルティを受けてしまうような事態も考えられるので、注意しましょう。