functions.php вызывает ошибку заголовка в Wordpress - PullRequest
0 голосов
/ 17 августа 2011

У меня проблема с моей темой WordPress, файл functions.php выводит ошибку ome bad header:

Предупреждение: невозможно изменить информацию заголовка - заголовки уже отправлены (вывод начался с / home /slavisap / public_html / femarkets / wordpress / wp-content / themes / Flex E / functions.php: 67) в /home/slavisap/public_html/femarkets/wordpress/wp-includes/pluggable.php в строке 934

Это происходит случайно, когда я пытаюсь зайти на какую-то страницу или создать другую с помощью администратора.

это мои функции. Php:

<?php
if (function_exists('register_nav_menus')) {
    register_nav_menus(
            array(
                'primary' => 'Primary Header Nav',
                'footer_menu' => 'Footer Menu',
                'exploring' => 'Exploring Page Menu',
                'using' => 'Using Page Menu',
                'downloading' => 'Downloading Page Menu'
            )
    );
}
function get_breadcrumbs() {
    global $wp_query;

    if (!is_home()) {

        // Start the UL
        echo '<ul class="breadcrumbs">';
        // Add the Home link
        echo '<li><a href="' . get_settings('home') . '">' . get_bloginfo('name') . '</a></li>';

        if (is_category()) {
            $catTitle = single_cat_title("", false);
            $cat = get_cat_ID($catTitle);
            echo "<li> &#47; " . get_category_parents($cat, TRUE, " &#47; ") . "</li>";
        } elseif (is_archive() && !is_category()) {
            echo "<li> &#47; Archives</li>";
        } elseif (is_search()) {

            echo "<li> &#47; Search Results</li>";
        } elseif (is_404()) {
            echo "<li> &#47; 404 Not Found</li>";
        } elseif (is_single()) {
            $category = get_the_category();
            $category_id = get_cat_ID($category[0]->cat_name);

            echo '<li> &#47; ' . get_category_parents($category_id, TRUE, " &#47; ");
            echo the_title('', '', FALSE) . "</li>";
        } elseif (is_page()) {
            $post = $wp_query->get_queried_object();

            if ($post->post_parent == 0) {

                echo "<li> &#47; " . the_title('', '', FALSE) . "</li>";
            } else {
                $title = the_title('', '', FALSE);
                $ancestors = array_reverse(get_post_ancestors($post->ID));
                array_push($ancestors, $post->ID);

                foreach ($ancestors as $ancestor) {
                    if ($ancestor != end($ancestors)) {
                        echo '<li> &raquo; <a href="' . get_permalink($ancestor) . '">' . strip_tags(apply_filters('single_post_title', get_the_title($ancestor))) . '</a></li>';
                    } else {
                        echo '<li> &raquo; ' . strip_tags(apply_filters('single_post_title', get_the_title($ancestor))) . '</li>';
                    }
                }
            }
        }

        // End the UL
        echo "</ul>";
    }
}
?>

URL моего сайта: http://slavisaperisic.com/femarkets/wordpress/

ты знаешь, что я делаю не так?

1 Ответ

7 голосов
/ 17 августа 2011

Так как в опубликованном вами файле functions.php нет строки 67 (по крайней мере, версия, которую я скопировал / вставил в мой редактор), я предполагаю, что у вас есть лишние пробелы в начале и / или конце вашего файла functions.php (до открытия <?php или после закрытия тегов ?>).

Любые символы в файле PHP вне тегов <?php ?> обрабатываются как стандартный вывод и немедленно записываются в STDOUT (или в поток вывода веб-серверов), а в сценарии с веб-сервером это будет вызывать отправку заголовков, так как вы выводите это тело ответа.

Убедитесь, что открывающий < является первым символом в файле, а закрывающий > является последним символом в файле.

На самом деле вам не нужно включать закрывающий тег ?>, если все данные в файле являются PHP-кодом, и его пропуск поможет избежать подобных проблем ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...