だいぶ前に、「RSSフィードエラー解決しました」の記事で、RSS フィードエラーの原因がWordPressプラグインの「Advanced-Permalinks」であるとお伝えしたのですが、ようやく解決に至りました。
しかし、結論から言うと、Advanced-Permalinksのプラグインは古いので、WordPress 3.xには対応が認められていないため、permalink redirectやredirectionのプラグインを使った方が良いとの結論です。
どうしても、advanced-permalinksを使い続けたい方は、下記の修正を施すと、RSSフィードエラーを回避することを確認しましたのでご参考まで。
plugin/advanced-permalinks.phpのparse_request関数を下記のものに置き換えて下さい。
/**
* Hook into the 'parse_request' action and check if our rewrite rules require a redirection
*
* @param array $vars Variables
* @return array Variables
**/
function parse_request ($vars)
{
// Have we triggered a redirect?
if (isset ($vars->query_vars['redirect']))
{
$didRedirect = false;
if (isset ($vars->query_vars['author_name'])){
wp_redirect (get_author_posts_url (0, $vars->query_vars['author_name']));
$didRedirect = true;
}
else if (isset ($vars->query_vars['category_name'])){
wp_redirect (get_category_link (get_category_by_path ($vars->query_vars['category_name'])));
$didRedirect = true;
}
if($didRedirect)
die();
}
// Workaround for WP 2.3
global $wp_db_version;
if ($wp_db_version > 6000 && isset ($vars->query_vars['category_name']))
{
$vars->query_vars['category_name'] = str_replace ('.html', '', $vars->query_vars['category_name']);
$vars->matched_query = str_replace ('.html', '', $vars->matched_query);
}
return $vars;
}
こちらを参考にさせて頂きました。
Advanced Permalinks Plugin RSS Feed Fix | Views From The Hill
Advanced Permalinks Plugin RSS Feedエラーを回避


コメント