Один шаблон для всей категории и отдельной записи

Друзья, может подскажите, кто чем пользуется. Раньше, ещё в версии 1.5 были такие плагины: Post Templates и Category Templates Которые позволяли определять для рубрики свой шаблон, и что не маловажно свой шаблон для отдельной записи.
В шаблоне прописывался в комментариях код, как для страницы:

<?php
/*
Template Name: Page
*/
?>

Только для категорий:

<?php
/*
Category Template: News
*/
?>

И отдельных постов:

<?php
/*
Post Template: News
*/
?>

Я понимаю, что кто-то может сказать – используй category-#, где # ID этой самой категории.
Но мне этот способ ужасно не нравиться. Во-первых: хорошо, если этих категорий 5-10. Можно как-то пережить. Но когда их 50, для того, чтобы внести в шаблон изменения, приходиться вспоминать, а шаблон для категории "Оружие племени Мубутамбе" это файл с названием category-25 или category-16?
Про отдельные записи вообще молчу. Столько кода нужно в шапке написать…
В плагинах имя файла шаблона категории можно было назвать как хочешь, допустим: cat_armor_mubutambe.php и всё сразу понятно и видно.
Вот итог, может есть какой-то путь, который облегчает эту задачу или плагин, который мне не известен. Повторюсь и для Категорий и для Отдельных записей (50 single.php не радуют :-))

Друзья, может подскажите, кто чем пользуется. Раньше, ещё в версии 1.5 были такие плагины: Post Templates и Category Templates

А почему "были"? Кто-то их украл? :rolleyes:

Post Temlates не работает после изменений в базе, а разработчик плагином уже три года не занимается
http://dev.wp-plugins.org/wiki/PostTemplates

А вообще, если кто-то поможет, буду несказанно рад. Я в запросах к базе вообще человек отсталый :-), но голова требует разобраться. В старой версии пытаюсь исправить на новый лад. И о чём я только думаю 🙂

Как в этом куске, из таблицы terms_taxonomy вынуть значения соответствующих полей parent и description ? И в таблицу вывода их уже поставил, а вот запрос как сделать не хватает мозгов. Это же очень просто, а как не знаю, в школе (в наше время :-)) такому не обучали.

Помогите, а? пожалуйста!

function pt_cat_rows($parent = 0, $level = 0, $categories = 0) {
    global $wpdb, $class, $user_level;
    if (!$categories)
        $categories = $wpdb->get_results("SELECT $wpdb->terms.term_id, name FROM $wpdb->terms INNER JOIN $wpdb->term_taxonomy USING (term_id) WHERE taxonomy = 'category'");

    if ($categories) {
        foreach ($categories as $category) {
            if ($category->parent == $parent) {
                $category->name = wp_specialchars($category->name);
                $pad = str_repeat('— ', $level);
                
                $class = ('alternate' == $class) ? '' : 'alternate';
                echo "
                <tr class=\"$class\">
                    <th scope=\"row\">$category->term_id</th>
                    <td>$pad $category->name</td>
                    <td>$category->description</td>
                    <td>" . pt_get_template_form($category->term_id) . " <input value=\"Update\" type=\"submit\"></td>
                </tr>
                ";
                pt_cat_rows($category->term_id, $level + 1, $categories);
            }
        }
    } else {
        return false;
    }
}

Подождите Вы к базе лезть, может все уже давно реализовано в функциях. Что Вы хотите получить? Подробно, но не углубляясь в реализацию.

Ну Вы и задали вопрос 🙂 Этот кусок кода из плагина, который я описал в первом посте. Он был разработан для старой версии базы данных. Сейчас он не работает. Необходимо просто отредактировать запросы к новой версии.
Конкретно этот кусок выводит (должен выводить) в панели администрирования таблицу с перечнем категорий, их ID, Описание категории и поле для смены шаблона для каждой из этих категорий.

Приблизительно то, что в админке делает функция cat_row()

Я ответил?:) Или не понял вопроса?

Тяжелый код, много запросов к базе из-за рекурсии. Почему бы не добавить одно поле штатной формочке редактирования категории. Ладно… Вернемся к Вашим баранам. Судя по тому, что в коде используются почти все поля, запрос должен быть примерно такой:
SELECT * FROM … и дальше по тексту. Условие с parent сами придумаете как написать. 🙂

PS Я не сразу отвечаю, потому как – не поверите! – есть и другие заботы. 🙂

А почему просто не написать

если категория 1, то запустить cat_armor_mubutambe.php, если 2 то cat_armor_huyumbe.php и так далее, тоже самое для постов. Кода будет не так много, но и не мало, зато он будет предельно понятен и не сломается из-за версий

Блоговер, то есть, Вы предлагаете делать то же, что и движок, только дорисовывать не номер, а слаг? Как два байта переслать! 😀

Проблема будет в том случае, если нужно не каждой категории свой шаблон, а, скажем, половине категорий один, второй половине – другой. Тогда придется их клонировать. А если нужно что-то изменить? Ужос!

Блоговер, то есть, Вы предлагаете делать то же, что и движок, только дорисовывать не номер, а слаг? Как два байта переслать! :D

Проблема будет в том случае, если нужно не каждой категории свой шаблон, а, скажем, половине категорий один, второй половине - другой. Тогда придется их клонировать. А если нужно что-то изменить? Ужос!

если надо делать 2 шаблона для двух категорий, то это

если категория=1,2,3,4,5 то запусти фыва.пхп, если все остальные олдж.пхп. Если что то надо изменить – то добавляется строка. Это проще чем делать 20 шаблонов категори-Х.пхп

апдейт и если что меняется в отображении категорий то правится 2 файла, а не 20

Это всё хорошо, только если шаблонов мало… а если для каждой категории свой, уникальный шаблон, и каждая запись в этой категории должна открываться в этом же шаблоне? Писать код в хедере типа:

(is_page($page_id) || is_category('4') || is_category('5') || is_category('7')
                     || is_category('8') || is_category('9') || is_category('10') || is_category('11')
                     || in_category('4') || in_category('5') || in_category('7') || in_category('8')

Ну я про это же и говорил, что через месяц уже не помнишь, какой номер категории соотноситься с её именем и шаблоном. А в WP 2.5 вообще в списке категорий убрали их ID и простое добавление категории в блог (сайт) сводиться к правке хедера, и куче других ненужных действий….

Эх-эх, неужели никто не додумался сделать плагин для категорий, как для страниц в WP. Создаёшь новую категорию и во всплывающем списке выбираешь для неё шаблон. Пишешь запись, и в опциях выбираешь для неё шаблон отображения, если оставляешь по умолчанию, то она отображается в шаблоне, выбранном для всей категории. Для тех кто умеет, элементарно.

P.S. Кстати, для выбора шаблона для одиночной записи я плагин всё-таки исправил, вроде работает 🙂 Туда бы ещё выбор шаблона для категорий засунуть и было бы счастье.

Это всё хорошо, только если шаблонов мало... а если для каждой категории свой, уникальный шаблон, и каждая запись в этой категории должна открываться в этом же шаблоне? Писать код в хедере типа:
(is_page($page_id) || is_category('4') || is_category('5') || is_category('7')
                     || is_category('8') || is_category('9') || is_category('10') || is_category('11')
                     || in_category('4') || in_category('5') || in_category('7') || in_category('8')

Ну я про это же и говорил, что через месяц уже не помнишь, какой номер категории соотноситься с её именем и шаблоном. А в WP 2.5 вообще в списке категорий убрали их ID и простое добавление категории в блог (сайт) сводиться к правке хедера, и куче других ненужных действий....

Эх-эх, неужели никто не додумался сделать плагин для категорий, как для страниц в WP. Создаёшь новую категорию и во всплывающем списке выбираешь для неё шаблон. Пишешь запись, и в опциях выбираешь для неё шаблон отображения, если оставляешь по умолчанию, то она отображается в шаблоне, выбранном для всей категории. Для тех кто умеет, элементарно.

P.S. Кстати, для выбора шаблона для одиночной записи я плагин всё-таки исправил, вроде работает 🙂 Туда бы ещё выбор шаблона для категорий засунуть и было бы счастье.

Ну так можно писать не айди а слаг категории или ее полное название, вордпресс такую возможность дает, также с 2.5 можно писать array(8,9,10) или тоже самое, но половина через слаг, половина через айди.

Другой способ борьбы с категориями – щаблон страницы с query категорий.

Ну так можно писать не айди а слаг категории или ее полное название, вордпресс такую возможность дает, также с 2.5 можно писать array(8,9,10) или тоже самое, но половина через слаг, половина через айди.
Другой способ борьбы с категориями - щаблон страницы с query категорий.

Да, согласен с вами полностью, но идя по такому принципу зачем вообще нужны эти подключаемые модули? написал шаблон, всё что нужно (все условия, запросы и т.д.) внёс туда же и радуйся…

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

imho Ловить лучше не в хедере, а через add_action(‘template_redirect’, ‘…..’);

Сорри за возможный оффтоп.. но вопрос вроде по теме
А как можно сделать, чтобы заходя в определенную категорию
видеть всегда первый определенный пост?
Стоит плагин adhesive для закпреления постов но это не совсем то 🙁

У wp-sticky в настройках есть что-то про категории.

Anonymous
Отправить
Ответ на: