#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:
Я вижу одну из двух проблем:
-
У вас зарегистрирована боковая панель, что означает, что условие передано, и оно пытается использовать расширенную боковую панель; у вас нет виджетов на боковой панели, поэтому она ничего не показывает. (другими словами, если у вас есть боковая панель, приведенный выше код никогда ничего не отобразит).
-
У вас не зарегистрирована боковая панель, поэтому она передает условие. Однако следующие условия не передаются, потому что они не выполнены или потому, что цикл еще не запущен, и у вас нет доступа к этим переменным.
Быстрый и дешевый способ проверить, выполнены ли условия, — просто повторить некоторый обычный текст или разметку только внутри каждого условия:
...
if($post->post_parent){
echo('Parent found');
...
(например)
Комментарии:
1. хорошо, я удалил виджеты, пока результата нет, и его родитель тоже не найден. Я потерял, я использую это на живом сайте, не знаю, почему он не работает
2. Здесь многое зависит от игры. Во-первых, зарегистрирована ли у вас боковая панель? Если да, есть ли в ней виджеты? Я подозреваю, что у вас есть боковая панель без виджетов. Вот почему остальная часть вашего кода не «работает». Или, точнее, она работает, потому что предназначена для выполнения только при отсутствии динамической боковой панели.