• Решено Misha1990

    (@misha1990)


    Как сделать переадресацию на 404.php в середине кода страницы без использования JS?

Просмотр 8 ответов — с 1 по 8 (всего 8)
  • что значит в середине кода страницы???

    Автор Misha1990

    (@misha1990)

    Ну то, что функция header() в данном случае не подойдёт.

    У меня на страницы есть условие, которое выполняется если ничего не найдено. Пишется: Ничего не найдено.
    (И это не страница 404. Это вообще home.php)

    Я хочу сделать так, чтоб когда у меня «ничего не найдено», то была переадресация на 404

    А теперь более ясно скажу.
    Вот home.php:

    <?php
    /**
     * @package WordPress
     * @subpackage Motion
     */
    get_header(); ?>
    
    <div id="main">
    <div id="content">
    
    <?php if (have_posts()) : ?>
    <?php while (have_posts()) : the_post(); ?>
    
    <?php if (function_exists('wp_list_comments')): ?>
    <div <?php post_class(); ?> id="post-<?php the_ID(); ?>">
    <?php else : ?>
    <div class="post" id="post-<?php the_ID(); ?>">
    <?php endif; ?>
    
    <div class="posttop">
    <h2 class="posttitle"><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a></h2>
    <div class="postmetatop">
    <div class="categs">Категория: <?php the_category(', ') ?></div>
    <div class="cleared"></div>
    </div><!-- /postmetatop -->
    </div><!-- /posttop -->
    
    <div class="postmetabottom">
    <div class="date"><div class="zadate"><?php the_time('d/m/Y') ?></div></div>
    <div class="readmore"><span><a href="<?php the_permalink() ?>">информация о товаре</a></span></div>
    <div class="cleared"></div>
    </div><!-- /postmetabottom -->
    </div><!-- /post -->
    
    <?php endwhile; ?>
    <?php else : ?>
    <div class="post">
    <div class="posttop">
    <h2 class="posttitle"><a href="#">Не найдено</a></h2>
    </div><!-- /posttop -->
    <div class="postcontent">
    <p>К сожалению, по Вашему запросу ничего не найдено.</p>
    </div><!-- /postcontent -->
    </div><!-- /post -->
    <?php endif; ?>
    
    <div id="navigation">
    <?php if(function_exists('wp_pagenavi')) { ?>
    <?php wp_pagenavi(); ?>
    <?php }
    else { ?>
    <div class="alignleft"><?php next_posts_link('« Предыдущие записи') ?></div>
    <div class="alignright"><?php previous_posts_link('Следующие записи »') ?></div>
    <?php } ?><!-- end of pagenavi conditional statement -->
    <div class="cleared"></div>
    </div><!-- /navigation -->
    
    </div><!-- /content -->
    
    <?php get_sidebar(); ?>
    
    </div><!-- /main -->
    <?php get_footer(); ?>

    Видишь строчку <p>К сожалению, по Вашему запросу ничего не найдено.</p>? Она выводится если выполняется определённое условие. Мне нужно, чтоб вместо этой строчки была переадресация.

    создайте в папке шаблона 404.php и почитайте тут

    а переадресация делается функцией wp_redirect(); но скорее всего если это делать уже после вывода выдаст ошибку, т.к. заголовки уже отправлены

    Atrax

    (@atrax)

    Ethical engineer

    Misha1990
    Вы уже не в первый раз нарушаете правила.
    Не читали, что ли?
    Следующее нарушение будет последним.

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    В текущей постановке задача некорректна. Как уже заметил Camarade, переадресацию нужно делать до вывода на экран. Какого эффекта вы хотите достичь в конечном итоге?

    Автор Misha1990

    (@misha1990)

    Atrax, Извиняюсь за нарушение правил.

    Sergey Biryukov, я уже решил более менее поставленную задачу с помощью: <meta http-equiv="refresh" content="0; url=<?php echo get_bloginfo('url'); ?>">
    А некорректность задачи из за того, что я просто не смог нормально всё объяснить(

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Спасибо, что поделились.

Просмотр 8 ответов — с 1 по 8 (всего 8)
  • Тема «Переадресация на 404.php» закрыта для новых ответов.