Здравствуйте!
Создал выпадающее меню по страницам.
- Родительская
— Один
— Два
— Три и т.д. до 15
И вдруг возник баг – стал переименовывать вложенные (дочернии) страницы и в результате они восприниматься как родительские. Страница "Родительская" вообще исчезает. При том заметил одну особенность: если прописывать в быстрой правке дочерних страниц в окне Порядок вместо цифры "0" цифру "1" – то все встает нормально.
И вторая особенность: то что если переименовывать не все дочерние страницы, а несколько из них – то как бы тоже все нормально, и только где-то с Седьмой начинается баг….
Подскажите – как с этим бороться? В чем смысл проблемы? Понятно, что можно прописывать в Порядке 1 вместо 0, но все равно – как-то хотелось бы разобраться, чтобы потом с этим больше не сталкиваться…
Сразу хочется сказать "Ктулху!", сплюнуть и перекреститься.
По делу: вызываете в коде шаблона или виджетом?
Ну дело, думаю не в циклопическом архидемоне Ктулху, а в движке, наверное… или еще в чем… Просто хочу разобраться….
Если идти от обратного – то какую роль в этом может играть Порядок с цифрами, где по умолчанию "0"?
Порядок влияет на вывод страниц, т.е. то, что мы и наблюдаем. У вас никакие плагины не стоят, связанные со страницами, например, My Page Order?
И WP какой версии (а то вы в коде шаблона вырезали :))?
Раньше стоял – но я его снес… легче ручками 🙂
прописан вывод меню – <div id="menu">
<?php wp_list_pages(‘orderby=name&title_li=’) ?> и CSS:
#menu {
background-image: url("images/menu-top-navi.png");
font-size:10px;
font-family:verdana, sans-serif;
font-weight:bold;
}
#menu li a {
display: block;
width:216px;
font-weight:bold;
color:#fff;
padding:6px;
background: url(images/line_v.gif) no-repeat;
}
#menu li a:hover {
background: #388fcc;
}
#menu, #menu ul {
float:left;
list-style:none;
line-height:10px;
padding:0;
margin:0 0 0 20px;
width:915px;
z-index: 1000;
}
#menu li {
float:left;
padding:0;
}
#menu ul {
position:absolute;
left:-999em;
height:auto;
width:165px;
font-weight:normal;
margin:0;
line-height:1;
border:0;
border-top:1px solid #2590d7;
}
#menu li li {
width:164px;
border-bottom:1px solid #2590d7;
border-left:1px solid #2590d7;
border-right:1px solid #2590d7;
font-weight:bold;
font-family:verdana, sans-serif;
}
#menu li li a {
padding:4px 10px;
width:145px;
font-size:10px;
color:#ffffff;
}
#menu li ul ul {
margin:-21px 0 0 150px;
}
#menu li ul li:hover a, #menu li ul li li:hover a, #menu li ul li li li:hover a, #menu li ul li li li:hover a {
color:#ffffff;
}
#menu li:hover a, #menu li.sfhover a {
color:#ffffff;
}
#menu li:hover li a, #menu li li:hover li a, #menu li li li:hover li a, #menu li li li li:hover li a {
color:#ffffff;
}
#menu li:hover ul ul, #menu li:hover ul ul ul, #menu li:hover ul ul ul ul, #menu li.sfhover ul ul, #menu li.sfhover ul ul ul, #menu li.sfhover ul ul ul ul {
left:-999em;
}
#menu li:hover ul, #menu li li:hover ul, #menu li li li:hover ul, #menu li li li li:hover ul, #menu li.sfhover ul, #menu li li.sfhover ul, #menu li li li.sfhover ul, #menu li li li li.sfhover ul {
left:auto;
background:#95b5d4;
}
PS версия 2.8.1 Почти свежо:D
У меня нет никаких предположений…
Ждем вердикта экспертов 😉 Мне тоже интересно, откуда такое появляется…
Кстати, может просто обновить WP?
Эксперты молчат… наверное тоже не знают… 🙁
Так никто и не смог мне посоветовать как исправить это баг… Печально… 🙁
при выводе в блоге нарушается порядок или сразу в админке блога?
при выводе, в админке по умолчанию формируется вывод по алфавиту "0". И исправляется эта фигня если прописывать у дочек 1. При том заметил, что например, если в админке прописано:
Родитель: 0
Дочь: 0
Дочь: 0
Дочь: 0 …
ТО все нормально, а вот если еще пару Дочь: 0 поставить – то все едит и только если ставишь Дочь 1 – то все выправляется… Но цифра "1" это порядок вывода по цифрам, а по алфавиту, вишь как, не выходит…Какие то может ограничения, хз!?
не знаю насчет страниц, но вообще-то мне казалось, что порядок это номер, когда выводить страницу.
то есть первой будет показана 0 страница, затем 1 страница, затем 2 страница и тд.
попробуйте каждой странице свой номер прописать и чтобы они не повторялись.
Вы правильно так думаете – но это справедливо, когда прописываешь страницы по выводу "по номерам". Т.е. порядок вывода дочек в этом случае определяется порядковым числом.
Но мне то надо по алфавиту (а это цифра "О") и проблема состоит в том, что как только создается, например, седьмая дочка, которая также по идея, как и предыдущие должна выводиться по алфавиту (т.к. стоит 0) – так выходит баг и все стили едут… и Только "спасет" прописание этой седьмой дочки цифры отличающейся от "нуля" и оставшимся дочка тоже…..
я никак в голову не возьму – причем тут порядковый номер страницы и алфавит?
http://codex.wordpress.org/Template_Tags/wp_list_pages
тут говорится однозначно:
sort_column
(string) Sorts the list of Pages in a number of different ways. The default setting is sort alphabetically by Page title.
* ‘post_title’ – Sort Pages alphabetically (by title) – default
* ‘menu_order’ – Sort Pages by Page Order. N.B. Note the difference between Page Order and Page ID. The Page ID is a unique number assigned by WordPress to every post or page. The Page Order can be set by the user in the Write>Pages administrative panel. See the example below.
* ‘post_date’ – Sort by creation time.
* ‘post_modified’ – Sort by time last modified.
* ‘ID’ – Sort by numeric Page ID.
* ‘post_author’ – Sort by the Page author’s numeric ID.
* ‘post_name’ – Sort alphabetically by Post slug.
то есть вот это вывод по порядку <?php wp_list_pages(‘title_li=&depth=1&sort_column=menu_order’); ?>
а вот это вывод по алфавиту <?php wp_list_pages(‘title_li=&depth=1&sort_column=post_title’); ?>
а ордер страницы вообще на алфавит не влияет.
Цитирую из админки WordPress 8.1. в редакции страниц
"Порядок
Порядковый номер страницы
Страницы обычно сортируются по алфавиту, но вы можете ввести номер в поле выше, чтобы изменить порядок страниц. (Мы знаем, что это немного неудобно, но это будет лучше в следующих релизах)."
и? это разные вещи! по умолчанию сортировка идет по алфавиту – а по порядку страниц она идет если вы пропишите sort_column=menu_order в функции wp_list_pages и проставите уникальные цифры в порядке страниц.
я не могу понять с чего вы взяли, что порядок страниц может быть только 0 или 1?
еще раз. вам не нужно менять порядок страниц, чтобы они выводились по алфавиту.
порядок страниц надо менять только если вывод идет по этому самому порядку.
и уж точно нельзя одну и ту же цифру присваивать всем страницам.
так изначально "по умолчанию" стоит 0 везде на всех страницах и указано что "Страницы обычно сортируются по алфавиту, но вы можете ввести номер в поле выше, чтобы изменить порядок страниц." Отсюда и я заключаю, что цифра "ноль" соответствует тому, что страницы сортируются по алфавиту…. Если появляется баг – то ставлю просто "1" – но это же не решение проблемы… Хотелось бы понять почему баг появляется и как сделать так, чтобы нули на единицы не исправлять (опять же акцентирую – что часть дочек прописаны с нулями и все нормально, баг появляется только на определнных дочках и исчезает если в них прописать единицу)?
вы неправильно делаете заключение.
в последний раз повторю – расставьте порядок у каждой страницы свою уникальную цифру.
потом посмотрите как у вас выводятся страницы – добавьте туда &sort_column=post_title если там стоит что-то другое.
и вывод будет по алфавиту.
я не понимаю чего вы хотите? я вам сказал 100% способ как организовать вывод страниц по алфавиту, а вы пытаетесь
убедить меня в том, что я неправ. зачем? неужели так сложно попробовать сделать то, что я сказал и убедиться в правильности метода?
ок.. попробую