@maksimbagatov

Роутинг на Wordpress. Как решить проблему с кэшем шаблонов?

В Wordpress анализирую в своем плагине урл:

add_action('parse_request', array(&$this, 'site_url_handler'));

function site_url_handler($query)
{		
	$m = NULL;
	global $wpdb;
	global $wp;
	
	if(!empty($wp->request))
	{
		$url = array();
		$url = explode('/', $wp->request);
		
		if($wp->request === 'alias1')
		{
			add_filter('template_include', array(&$this, 'items_template'));
		}
		elseif($url[0] === 'alias1' && $url[1] === 'alias2')
		{
			add_action('template_include', array(&$this, 'items_add_template'));
		}
	}
}

	function items_template($template)
	{
		global $template;
		get_header();
		$this->site_show_items();

		get_sidebar();
		echo('<div class="clear"></div>');
		get_footer();
		return FALSE;
	}
	
	function items_add_template($template)
	{
		global $template;
		get_header();		
		include_once('template/site_add.php');
		get_sidebar();
		echo('<div class="clear"></div>');
		get_footer();
		return FALSE;
	}

Плагин для кэширования Hyper Cache. В админ части кэша нет. Если в публичной части набрать site.ru/alias1/alias2/, а затем перейти на site.ru/alias1/, то по адресу site.ru/alias1/ отображается шаблон site.ru/alias1/alias2/. И в ответ при отображении шаблона приходит 404, но шаблон отображается:

Remote Address:
Request URL: site.ru/alias1
Request Method:GET
Status Code:404 Not Found

Подскажите как решить проблему?
  • Вопрос задан
  • 1104 просмотра
Пригласить эксперта
Ответы на вопрос 1
HeadOnFire
@HeadOnFire
PHP, Laravel & WordPress Evangelist
А с выключенным кешированием что происходит? Боюсь, дело не в кеше, а в rewrite rules. site.ru/alias1 перебивается другим правилом rewrite, скорее всего статической страницей. Ставьте Rewrite Rules Inspector и выясняйте что с правилами.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы