Пытаюсь сделать страницу настроек в теме.
Возникла проблема с тем, как связать файл settings.php (там у меня прописаны настройки) и саму тему.
Первое: как вывести количество постов в списке <?php get_archives(‘postbypost’, 10); ?>
Пыталась сделать так: <?php get_archives(‘postbypost’, ‘.$mytheme[‘postlist’]’); ?>
pagelist – это переменная, которая определяет сколько постов будет выводится в этом списке.
Выдает ошибку.
Второе: нужно вывести список страниц, исключая текущую страницу и еще некоторые:
<?php wp_list_pages(‘title_li=&depth=-1&exclude=1,2,3,’.$post->ID); ?>
Хотела заменить страницы с ID 1,2,3 переменной pagelist. Вот так:
<?php wp_list_pages(‘title_li=&depth=-1&exclude=.$mytheme[‘pagelist’] ,’.$post->ID); ?>
И опять ошибка.
Народ, может, кто знает, подскажите, пожалуйста, как правильно это сделать?
Откройте любой навороченный шаблони или в платный какой загляните, где это реализовано.
Ценный совет, конечно.
Смотрела уж. Все равно ничего не получается.
1. Список:
Определение переменной:
<?php $mytheme[‘postlist’]=5; ?>
Вашу строку правильнее записать так:
<?php get_archives(‘postbypost’, $mytheme[‘postlist’]); ?>
Но лучше явно указать значения всех переменных. Например так:
<?php get_archives(‘postbypost’, $mytheme[‘postlist’], ‘custom’, ”, ‘<br />’); ?>
2. По аналогии смотрите на кавычки и точки.
Help Desk, а вот это <?php $mytheme[‘postlist’]=5; ?> куда вставить?
Что то не получается. Выводятся все статьи, существующие на сайте, даже если не указываю нужное количество на странице настроек.
А если указываю количество, оно почему то не сохраняется, а при попытке сохранения, выбрасывает из админки на 404 страницу. Наверное, я неправильно прописала админскую часть.
Я не знаю, где Вы храните «переменную, которая определяет сколько постов будет выводится в этом списке». В первом сообщении у Вас «10» было.
Второй пример: <?php $mytheme[‘pagelist’]="2,69,79,"; wp_list_pages(‘title_li=&depth=-1&exclude=’.$mytheme[‘pagelist’].$post->ID); ?> и $mytheme[‘pagelist’]="2,69,79,"; в нем – тоже самое. Где-то же Вы эти переменные определяете 🙂
Если не указываете нужное количество, то почему ожидаете, что будут выводиться не все?
Этот абзац непонятен
В админке wordpress, на странице настроек темы, в строке,
<p><input class="widefat" style="width:100px" name="cp_pagelist" id="cp_pagelist" value="’.$this->options["pagelist"].’"> Количество постов для вывода на главной</p>
указываю количество постов. Например 10. Нажимаю "Сохранить".
Страница должна перезагрузиться и на ней должно отобразиться указанное число.
Вместо этого меня выбрасывает из админки на 404 страницу. А количество постов не сохраняется.
Одной этой строки для исправления ошибки мало. Очень мало!
Вы выводите форму, вводите данные, отправляете их. Потом управление передается скрипту, который введенные данные перехватит и обработает (например, сохранит введенное число), после чего вернет в броузер (или сделает редирект/передаст управление на) новую страницу.
Для ответа на Ваш вопрос Вы должны разбить описанные этапы на более мелкие задачи, определить проблемный этап, а в нем частную проблему. Если не получится разобраться самой, то спросить здесь описав минимумом кода проблему: нужно то-то и то-то, делаю так-то так-то, ожидаю получить то-то то-то, а получаю вот это.
У Вас получилось, что-то типа такого: из Владивостока машина выехала – вот она, а в Москву не приехала. Почему? 🙂
Поняла.
Вот код страницы настроек темы, который я никак не могу состыковать с самой темой.
Если можете, подскажите, плиз, в чем здесь ошибки?
C этим разобралась. Была пропущена кавычка.
Help Desk, а как добавить сюда тег <li>, чтобы заглавия выводились в виде списка?
<?php get_archives(‘postbypost’, $mytheme[‘postlist’], ‘custom’, ”, ‘<br />’); ?>
<?php get_archives(‘postbypost’, $mytheme[‘postlist’], ‘html’, ”, ‘<br />’); ?>
Help Desk, спасибо.
И еще проблема (надеюсь последняя).
Это список других страниц, выводимый на странице, т.е. в файле page.php.
<?php wp_list_pages(‘title_li=&depth=-1&exclude=’.$mytheme[‘pagelist’].$post->ID); ?>
Он должен исключать из вывода те страницы, которые я запретила к выводу на странице настроек темы.
Если я запретила к выводу, например, страницы 1,2,3, то он исключает 1 и 2, а последнюю страницу выводит.
Если запрещено к выводу 1,2,3,4,5 – то 1,2,2,4 страницы исключаются, а 5 выводится.
Как это исправить?
$mytheme[‘pagelist’].$post->ID "склеивает" последнюю цифру с ID текущей. Если я прав, то в списке есть и текущая. Есть? Тогда так:
$mytheme[‘pagelist’].’,’.$post->ID
Может быть 🙂
Для начала посмотреть содержимое переменных $mytheme[‘pagelist’] и $post->ID, а после этого двигаться дальше.
Выведите их содержимое в page.php – может быть сразу сами все и поймете.
<?php echo "<p>Переменная MythemePagelist = ".$mytheme[‘pagelist’]."<br />Переменная postID = ".$post->ID."</p>"; ?>
Не должна, т.к. запятую я ставил
Разве, что Мила ее пропустила. Содержимое переменных покажет
Ю.Б., текущая страница не выводится, но ваше исправление все равно работает, как и всегда.
Спасибо!
Help Desk, и вам спасибо за помощь – разобралась.
Хотя, если она их перечисляет в форме в админке, а потом сохраняет, то вполне возможно, что последней запятой нет. Тогда это надо учесть во время обработки формы.