Advanced PermalinksのRSS Feedエラーを回避

※本ページはプロモーションが含まれています

Wordpress WordPress
WordPress Logo
スポンサーリンク

だいぶ前に、「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エラーを回避

コメント

タイトルとURLをコピーしました