Не отображается боковая панель WordPress

#php #wordpress #sidebar

#php #wordpress #боковая панель

Вопрос:

Привет, создаю новую тему в WordPress.

Имея проблему с боковой панелью, она должна отображать основной родительский заголовок, а затем все дочерние элементы.

 <?php if ( !function_exists('register_sidebar')|| !register_sidebar() ) : ?>
    <ul id="sidebar">
        <?php
        if($post->post_parent){
            $children = wp_list_pages("title_li=amp;child_of=".$post->post_parent."amp;echo=0");
            $title_heading = get_the_title($post->post_parent);
        } else {
            $children = wp_list_pages("title_li=amp;child_of=".$post->ID."amp;echo=0");
            $title_heading = get_the_title($post->ID);
        }

        if($children) { ?>

        <li><h3><?php echo $title_heading; ?> </h3>
            <ul>
                <?php echo $children; ?>
            </ul></li>
        <?php } ?>
    </ul>
    <?php endif; // end primary widget area ?>
  

но он ничего не отображает.

Он показывает раздел боковой панели в firebug, поэтому отображается боковая панель.

Он находится на локальном хосте, поэтому не может указать URL.

Вся помощь приветствуется

Приветствую Джо

Ответ №1:

Я вижу одну из двух проблем:

  1. У вас зарегистрирована боковая панель, что означает, что условие передано, и оно пытается использовать расширенную боковую панель; у вас нет виджетов на боковой панели, поэтому она ничего не показывает. (другими словами, если у вас есть боковая панель, приведенный выше код никогда ничего не отобразит).

  2. У вас не зарегистрирована боковая панель, поэтому она передает условие. Однако следующие условия не передаются, потому что они не выполнены или потому, что цикл еще не запущен, и у вас нет доступа к этим переменным.

Быстрый и дешевый способ проверить, выполнены ли условия, — просто повторить некоторый обычный текст или разметку только внутри каждого условия:

 ...
if($post->post_parent){
   echo('Parent found');
...
  

(например)

Комментарии:

1. хорошо, я удалил виджеты, пока результата нет, и его родитель тоже не найден. Я потерял, я использую это на живом сайте, не знаю, почему он не работает

2. Здесь многое зависит от игры. Во-первых, зарегистрирована ли у вас боковая панель? Если да, есть ли в ней виджеты? Я подозреваю, что у вас есть боковая панель без виджетов. Вот почему остальная часть вашего кода не «работает». Или, точнее, она работает, потому что предназначена для выполнения только при отсутствии динамической боковой панели.