2012-06-14 3 views
0

Привет Я типа, чтобы сделать плагин, который показывает страницу, вместо отправки 404 страницы, когда на странице, которая не существует404 Перенаправление не работает

Я знаю, что я могу изменить, чтобы 404.php файл сделайте это, но мне нужно поместить это в плагин.

Если я удалю оператор if, то его работы будут выполняться на всех страницах, которые не то, что я хочу.
Так я положил заявление, если (is_404()) в России, но это, кажется, не работает вообще сейчас ...

function da_404_redirect() 
    { 
     if(is_404()) 
     {  
     query_posts('page_id=2'); 
     status_header("200"); 
     } 
    } 
    add_action('init','da_404_redirect'); 

ответ

1

Чтобы перенаправить, не подключайте init, особенно если вы используете условный тег, например is_404(). Любой условный тег все равно вернет false в init.

ПРИМЕНЕНИЯ: template_redirect вместо или pre_get_post, если вам нужно что-то изменить на WP_Query

+0

Спасибо, я использовал шаблон редиректа, который работает ..... У кого-нибудь есть хороший ресурс для крючков .... –

+0

Добро пожаловать. У меня нет такого обращения. Обычно я перехожу в файлы ядра wp, чтобы найти их. – AriePutranto

2

Ваше действие крюк может быть слишком рано в цикле WordPress, чтобы узнать, если это составляет 404. http://codex.wordpress.org/Plugin_API/Action_Reference/init. Попробуйте использовать более поздний крючок действия.

+0

хорошего мышления Нику – buley

+0

Спасибо, @editor, я знал, что это неправильное действие он закреплять в но я не знаю, исправьте. – Nick

2

Как говорит Ник, вы можете подключиться к событию с поздним зажиганием. По моему опыту, template_redirect - лучший вариант.

Смежные вопросы