- Drupal Русскоязычное сообщество
- Комментарии
- На развитие drupal.ru
- Трекер
- Как в PhpMyAdmin вручную изменить свойство у одного материала?
- Simplenews и мультисайтинг
- Задачка для Rules? Отправить письмо после публикации материала пользователю с таким же tid
- Зависимая фильтрация на друпал7
- Встречайте PHP 8
- Поля материала на одном уровне
- ERROR 1064 (42000): You have an error in your SQL syntax; при создании базы данных для установки друпала
- О завершение поддержки Drupal 8 — простыми словами
- Views
- Проблема: Views Bulk Operations не удаляет файлы (Skipped Delete item on file due to insufficient permissions)
- Новые материалы
- Simplenews и мультисайтинг
- Встречайте PHP 8
- Задачка для Rules? Отправить письмо после публикации материала пользователю с таким же tid
- Зависимая фильтрация на друпал7
- Как в PhpMyAdmin вручную изменить свойство у одного материала?
- Поля материала на одном уровне
- Views
- Программное выведение значения поля таксономии материла
- Каким инструментом/инструментами в Drupal можно сделать форму комментирования новости?
- Какие инструменты лучше выбрать для реализации фильтрации, сортировки, поиска, постраничной навигации новостей?
- Блог MerinovKV
- Техническое обслуживание сайтов.
- Выводим список материалов в списке категорий Joomla 2.5
- Как вывести название (заголовок) категории в WordPress. Функции single_cat_title() и get_cat_name() и др.
- 1. Первая ситуация – вам нужно вывести заголовок рубрики (таксономии) при разработке страницы категории, архивов, меток и кастомных таксономий.
- 2 ситуация – вывести название категории, если есть ее id.
- 3 ситуация – вывести название рубрики на странице поста.
- Studhelper IT
- Страницы
- вторник, 12 ноября 2013 г.
- Запросы к базе данных Производство
- Как выводить посты рубрики, название и описание?
- Рубрики создают дубли страниц.
- Как вывести название категории?
- Статьи рубрики:
- Как выводить описание рубрик?
- Вывод постов рубрик.
- Избавляемся от вредоносной пагинации в рубриках навсегда!
Drupal Русскоязычное сообщество
Ребята, подскажите пожалуйста как мне программно вывести наименование типа материалов в ноде?
Комментарии
Во views можно добавить выводимое поле типа материала
Во views можно добавить выводимое поле типа материала
А как его в ноде вывести?
А как его в ноде вывести?
Вывожу — print $type ; ?>
получаю машинное имя текущего типа. А как можно вывести человекообразное наименование?
Ну, я так еще не делал, но вот что сейчас нашел здесь http://drupal.org/node/54059:
where you want it inline.
this gives you the content type label rather than the module name, so it’s much better than the traditional hack: type ?>
что-то не выходит
Используйте в теле ноды или блока
или напрямую из бд
fields(‘n’, array(‘type’))
->condition(‘nid’, arg(1));
$query
->fields(‘nt’, array(‘name’))
->innerJoin(‘node_type’, ‘nt’, ‘n.type = nt.type’);
$result = $query->execute();
foreach ($result as $row) <
print ($row->name);
>
Работает! ОГРОМНОЕ СПАСИБО!
А еще вопросик. В ноде тип показывается, а вот если перейти по ссылке какого-нибудь тега, в списке всех материалов тип пропадает. Как побороть? Помогите пожалуйста.
Ф-ция menu_get_object «ловит» объект ноды или юзера с урла, поэтому работает если урл ноды типа node/%node (даже если изменен модулем Path). Но, например, в шаблоне node.tpl.php вашей темы объект $node доступен всегда. Поэтому можете код
перенести в шаблон node.tpl.php и он будет работать при любом отображении нод. В теме Бартик можно сделать, например, так:
name); // Свой код
print render($content);
?>
$types = node_type_get_types();
$names = node_type_get_names();
- Войдите или зарегистрируйтесь, чтобы отправлять комментарии
На развитие drupal.ru
Ваша финансовая помощь дает нам возможность оплачивать хостинг и поддерживать стабильную работу сайта. Благодарим за поддержку!
Трекер
Как в PhpMyAdmin вручную изменить свойство у одного материала?
Simplenews и мультисайтинг
Задачка для Rules? Отправить письмо после публикации материала пользователю с таким же tid
Зависимая фильтрация на друпал7
Встречайте PHP 8
Поля материала на одном уровне
ERROR 1064 (42000): You have an error in your SQL syntax; при создании базы данных для установки друпала
О завершение поддержки Drupal 8 — простыми словами
Views
Проблема: Views Bulk Operations не удаляет файлы (Skipped Delete item on file due to insufficient permissions)
Новые материалы
Simplenews и мультисайтинг
Встречайте PHP 8
Задачка для Rules? Отправить письмо после публикации материала пользователю с таким же tid
Зависимая фильтрация на друпал7
Как в PhpMyAdmin вручную изменить свойство у одного материала?
Поля материала на одном уровне
Views
Программное выведение значения поля таксономии материла
Каким инструментом/инструментами в Drupal можно сделать форму комментирования новости?
Какие инструменты лучше выбрать для реализации фильтрации, сортировки, поиска, постраничной навигации новостей?
Содержимое сайта публикуется на условиях CreativeCommons Attribution-ShareAlike 3.0 или более поздней версии. Программные коды в тексте статей — на условиях GNU GPL v2 или более поздней версии.
Источник
Блог MerinovKV
Техническое обслуживание сайтов.
Выводим список материалов в списке категорий Joomla 2.5
Собственно, лучше покажу, как это выглядит, чем объяснять.
- 2013 г.
- 01.01.2013 Новость 1
- 2012 г.
- 01.07.2012 Новость 3
- 23.02.2012 Новость 2
- 07.04.2012 Новость 1
- 2011 г.
- Новость 2
- Новость 1
- 2010 г.
- 2009 г.
Вот как-то так… То есть, выводим название категории, а в ней ссылки на материалы. Раскрашивать и украшать не стал — и так видно, что за затея.
Сздаем пункт меню «Материалы » Список всех категорий» и указываем корневую категорию, которая содержит нужные подкатегории с материалами. Получим пока просто список категорий.
Открываем /templates/ШАБЛОН/html/com_content/categories/default_items.php
или /components/com_content/views/categories/tmpl/default_items.php
в зависимости от того, что присутствует (я уже писал о разных путях). Вообще, это и есть шаблон вывода категории, который мы сейчас будем нещадно править.
Самая суть вот в этом куске:
Номер строки проставлять не стал, это можно вставить почти куда угодно — тут хватит даже начальнах знаний PHP. Собственно, тут мы подключаемся к базе, выполняем запрос, в котором нам нужны все поля (мне нужны все поля, кому надо определенные — курим SELECT), но только принадлежащие id категории ($item->id), опубликованные и не в корзине (`state`>0).
Дальше полученный результат ($res= $db->loadObjectList();) перебираем и вставляем заголовок новости (echo $concert->title;).
Чтобы все это выглядело красиво — я затолкал вывод заголовков новостей в список (потом в CSS уже как захочется можно его украсить).
Я неспроста оставил //print_r ($concert); заремареным. Если его раскомментировать — увидим (да и так это видно), что $concert — это объект, в котором находятся все наши поля. доступ к ним осуществляется аналогично. Есть маленькая тонкость. В базе нигде не прописана ссылка. Заметили? Ссылку делаем так:
Если совсем разжевать и в рот положить — получится так:
Есть вариант вогнать туда роутер (что предпочтительнее):
Это, конечно, костылик, но большего обычно требуется редко, тем более, если мы сделаем это в файле /templates/ШАБЛОН/html/com_content/categories/default_items.php — не такой это и костыль получится.
Для тех, кто вообще далек — вот код (если что-то попрет не туда — не ругаться, а начинать думать!)
Источник
Как вывести название (заголовок) категории в WordPress. Функции single_cat_title() и get_cat_name() и др.
В этой статье мы разберемся с выводом заголовков (названий) рубрик на различных страницах сайта на WordPress.
1. Первая ситуация – вам нужно вывести заголовок рубрики (таксономии) при разработке страницы категории, архивов, меток и кастомных таксономий.
Для этих целей используют несколько подходов.
Во-первых – это функция — single_cat_title(). Используется за пределами цикла и будет работать только на страницах таксономий.
Пример использования этой функции следующий:
Основные параметры здесь $prefix(строка) – это текст, который будет находиться перед заголовком и $display(логический) – которые определяет, выводить ли на экран результат работы функции (1) или же скрыть и дать возможность использовать в последующей обработке кода.
На практике, чаще всего используют следующий подход:
Если же вам нужно создать переменную с названием категории, метки или архива, то можно использовать следующий код.
Аналогом данной функции в WordPress является функция — single_term_title(), которая была введена в движок, начиная с версии 3.1.
Она принимает точно такие же параметры, как и описана выше функция.
Еще один способ получения названия рубрики на странице самой рубрики это:
2 ситуация – вывести название категории, если есть ее id.
Первая функция, которая поможет решить эту задачу — это get_cat_name().
В качестве параметра она принимает id рубрики (таксономии) — $cat_id.
Пример использования данной функции:
Второй вариант – это использование функции — get_category().
Пример ее использования в этих целях.
3 ситуация – вывести название рубрики на странице поста.
Для этих целей можно использовать функции: get_the_category() или же the_category().
Приведу несколько примеров того, как их можно использовать.
Вывод заголовка первой (основной) категории поста.
Если пост привязан к нескольким рубрикам, то их можно вывести через запятую.
Функция the_category(), принимает следующие параметры:
Часто используют именно первый параметр $separator, где в строчном виде указывают разделитель между названиями категорий.
На этом сегодня все. Теперь вы можете выводить название таксономий в любой удобный для вас способ, подбирая нужные функции под конкретно ваши задачи.
Источник
Studhelper IT
Разработка приложений, переводы книг по программированию
Страницы
вторник, 12 ноября 2013 г.
Запросы к базе данных Производство
Одно изделие может содержать много типов материалов и один и тот же материал может входить в состав разных изделий.
- Определить изделие, в которое входит больше всего материалов типа ‘цветной металл’.
- Вывести список изделий, которые не производились в 2000 г.
- Вывести список изделий, для которых затраты на материалы в 2000 г. снизились по сравнению с предыдущим годом.
- Вывести среднемесячный расход материала ‘лапша’ в 2000 г.
SELECT Изделия.Название, Sum(Спецификация.Количество) AS [Sum-Количество], Материалы.Тип
FROM Спец INNER JOIN (Материалы INNER JOIN (Изделия INNER JOIN Спецификация ON Изделия.Код_изделия = Спецификация.Изделие) ON Материалы.Код_материала = Спецификация.Материал) ON Спец.Код = Спецификация.Спецификация
WHERE (((IIf((IsNull([Спец]![Дата_отмены]) Or [Спец]![Дата_отмены]>Date()) And [Спец]![Дата_установки]
SELECT Max(ЦветМет1.[Sum-Количество]) AS [Max-Sum-Количество]
FROM ЦветМет1;
SELECT ЦветМет1.Название, ЦветМет1.[Sum-Количество]
FROM ЦветМет1, ЦветМет2
WHERE (((ЦветМет1.[Sum-Количество])=[ЦветМет2]![Max-Sum-Количество]));
SELECT Изделия.Код_изделия, Выпуск.Год_выпуска, Sum(Выпуск.Объем_выпуска) AS [Sum-Объем_выпуска]
FROM Изделия INNER JOIN Выпуск ON Изделия.Код_изделия = Выпуск.Изделие
GROUP BY Изделия.Код_изделия, Выпуск.Год_выпуска
HAVING (((Выпуск.Год_выпуска)=2000));
SELECT Изделия.Название
FROM Нет_2000 RIGHT JOIN Изделия ON Нет_2000.Код_изделия = Изделия.Код_изделия
WHERE (((IsNull([Год_выпуска]))=Yes));
SELECT Изделия.Название
FROM Изделия
WHERE (((Изделия.Код_изделия) Not In (SELECT Изделия.Код_изделия
FROM Изделия INNER JOIN Выпуск ON Изделия.Код_изделия = Выпуск.Изделие
GROUP BY Изделия.Код_изделия, Выпуск.Год_выпуска
HAVING ((Выпуск.Год_выпуска)=2000))));
SELECT Выпуск.Год_выпуска, Материалы.Название, Sum(Выпуск.Объем_выпуска) AS [Sum-Объем_выпуска], Avg([Спецификация]![Количество]*[Выпуск]![Объем_выпуска]) AS Расход
FROM Спец INNER JOIN (Материалы INNER JOIN ((Изделия INNER JOIN Выпуск ON Изделия.Код_изделия = Выпуск.Изделие) INNER JOIN Спецификация ON Изделия.Код_изделия = Спецификация.Изделие) ON Материалы.Код_материала = Спецификация.Материал) ON Спец.Код = Спецификация.Спецификация
WHERE (((IIf([Выпуск]![Год_выпуска] Between DatePart(‘yyyy’,[Спец]![Дата_установки]) And IIf(IsNull([Спец]![Дата_отмены]),DatePart(‘yyyy’,Date()),DatePart(‘yyyy’,[Спец]![Дата_отмены])),1,0))=1))
GROUP BY Выпуск.Год_выпуска, Материалы.Название
HAVING (((Выпуск.Год_выпуска)=2000) AND ((Материалы.Название)=»Лапша»));
SELECT Изделия.Код_изделия, Выпуск.Год_выпуска, Sum([Выпуск]![Объем_выпуска]*[Спецификация]![Количество]*[Материалы]![Цена]) AS Затраты
FROM Спец INNER JOIN (Материалы INNER JOIN ((Изделия INNER JOIN Выпуск ON Изделия.Код_изделия = Выпуск.Изделие) INNER JOIN Спецификация ON Изделия.Код_изделия = Спецификация.Изделие) ON Материалы.Код_материала = Спецификация.Материал) ON Спец.Код = Спецификация.Спецификация
WHERE (((IIf([Выпуск]![Год_выпуска] Between DatePart(‘yyyy’,[Спец]![Дата_установки]) And IIf(IsNull([Спец]![Дата_отмены]),DatePart(‘yyyy’,Date()),DatePart(‘yyyy’,[Спец]![Дата_отмены])),1,0))=1))
GROUP BY Изделия.Код_изделия, Выпуск.Год_выпуска;
SELECT Затраты2000.Код_изделия, Затраты2000.Год_выпуска, Затраты2000.Затраты
FROM Затраты2000
WHERE (((Затраты2000.Год_выпуска)=1999));
SELECT Изделия.Название, Затраты_1999.Затраты, Затраты_2000.Затраты, [Затраты_1999.Затраты]-[Затраты_2000.Затраты] AS [Снижение затрат]
FROM (Затраты_1999 INNER JOIN Изделия ON Затраты_1999.Код_изделия = Изделия.Код_изделия) INNER JOIN Затраты_2000 ON Изделия.Код_изделия = Затраты_2000.Код_изделия
WHERE (((Затраты_1999.Затраты) Is Not Null) AND ((Затраты_2000.Затраты) Is Not Null) AND (([Затраты_1999.Затраты]-[Затраты_2000.Затраты])>0));
Источник
Как выводить посты рубрики, название и описание?
Рубрики это инструмент навигации по сайту, они улучшают “общение” между вебмастером и посетителем. Так как перечисленные выше свойства входят в “ТОП” главных параметров успешного сайта, то возникает вопрос… А как же оптимизировать эти самые категории?
Категории или рубрики, как вам больше удобно, должны стать вашим оружием в борьбе с упрямыми поисковыми системами, именно о том как оптимизировать выводимые страницы рубрик и пойдет речь в данной статье.
Как вы уже поняли речь пойдет о категориях сайта и их оптимизации. Почему данная тема актуальна? Все дело в том что в WordPress темах, в большинстве из них, страницы рубрик никак не адаптированы под требования поисковиков.
Вы можете ознакомиться с базовыми вопросами в этой статье: Что такое рубрики и как их создавать?
Итак, давайте разберем все по порядку, чем же могут помочь и навредить рубрики сайту?
Рубрики создают дубли страниц.
Действительно, неправильное использование рубрик способно не только помочь, но и навредить, ведь по своей сути рубрики предназначены для группировки записей. При стандартных формированиях страниц рубрик мы копируем фрагменты постов, которые уже использовались ранее на главной странице, если речь идет о блоге, и непосредственно части самой публикации, ведь анонс статьи берется именно от туда.
Что же делать и как решить эту проблему? А решение довольно простое… Нужно сделать страницы рубрик уникальными. В таком случае ваши категории не только не навредят, но и значительно повысят ваш сайт в глазах поисковых роботов.
Во избежание дублирования контента многие закрывают индексацию рубрик как в файле robots, так и мета тегами, но это не выход! Есть страница, да еще и участвующая в навигации, которая передает значительное количество веса страниц, она должна быть проиндексирована!
Ну что же, хватит пугать, перейдем к сути, и начнем нашу оптимизацию рубрик WordPress. Начнем с начала — вывод названия категории.
Как вывести название категории?
Практически в каждом шаблоне WordPress существуют файлы category.php или archive.php, предназначенные именно для вывода страниц категорий. С этими файлами мы и будем работать далее. Если же у вас за вывод рубрик отвечает другой файл, тогда найдите подходящий.
Что бы вывести название категории, скажем в теге H1, то-есть в заголовке первого уровня, нам нужно прописать следующий код в нашем файле (вы можете использовать любой html тег допустимый в данном случае):
Функция php single_cat_title() выведет на экране название категории, указанное при создании в админке.
CSS класса и сам класс это уже ваша забота, тут вариантов очень много, все зависит от вашей темы и желаний.
ОК, мы выводим название категории, скорее всего, но состоит из одного – двух слов, что же делать если нам нужно добавить определенный текст? Выход так же есть, можем перед выводом функции добавить определенный текст:
Статьи рубрики:
Я думаю описывать это действие не нужно, перед непосредственным выводом названия добавляется фраза “Статьи рубрики” с двоеточием, что отлично подойдет под любое слово.
Если же вы к примеру хотите изменить заголовок каждой рубрики в ручную тогда вам придется писать отдельный скрипт в функциях темы, об этом мы не будем говорить в этой статье, возможно как то в другой раз.
Название рубрики выводить научились, отлично, теперь перейдем к описанию.
Как выводить описание рубрик?
Для вывода описания категорий существует так же несколько способов.
Первый способ это банальный вызов функции category_description( $category_id ), который выведет описание рубрики указанное при создании. Минус этого варианта в том, что без использования плагина, адекватно настроить стили описания не выйдет, сухой текст без тегов…
В шаблоне это должно выглядеть примерно так:
Под эти классы можно немного подправить внешний вид. Этот способ является самым быстрым и простым. Несмотря на это большинство это устроит, ведь этот текст больше предназначен для “машин” чем для пользователей. Посетитель перейдя на страницу категории в первую очередь ищет нужные и понятные ссылки на подробные материалы сайта.
Вторым способом, так же как и в случае с названием является создание и использование функции php внутри темы, которая будет выводить описание для каждой категории отдельно и разные, на данный момент я пример не приведу, но обязательно сделаю это немного позже.
Вывод постов рубрик.
Для вывода постов используется стандартный цикл WordPress, используемый при выводе анонсов на главной:
Данным фрагментом кода мы вызываем цикл который выведет все посты данной категории в теге H2, со ссылками на статью и текстом ссылки идентичной названию статьи.
Как мы можем заметить, у нас отсутствует вывод фрагмента статьи, что обезопасит нас от дублирования контента.
Если же вы все таки решите вывести анонс, тогда вам нужно добавить перед или после заголовка еще один кусок кода:
Это выведет миниатюру поста и цитату. Стоит ли так поступать, решать только вам.
После внесения изменений в шаблон вам предстоит поиграться со стилями, для нормализации отображения.
После того как вы все сделаете, основная задача будет выполнена! Вы Сделаете рубрики уникальными, страницы которых с удовольствием “глотнут” поисковые системы!
Если у вас имеются свои варианты оптимизации, предлагайте их в комментариях, возможно именно ваши советы помогут решить задачу посетителей.
Избавляемся от вредоносной пагинации в рубриках навсегда!
Сканирование и индексация страниц категорий это одна из причин по которых их закрывают от роботов. Действительно рубрики способны сгенерировать большое количество ненужных страниц в поиске, что естественно очень плохо для сайта.
Так как же решить эту проблему разом для всех рубрик и навсегда забыть об этом?
Некоторые советуют прописывать в мета тегах инструкции для роботов, другие ставят редиректы, я же предлагаю вам выводить все посты на категории на одной странице, не зависимо от настроек вашего WordPress.
Что мы получим в итоге?
- Большую станицу, насыщенную нужными ключевыми словами.
- Нормальное распределение веса по всем записям категории.
- Отличное дополнение к навигации сайта.
Подумайте сами, если посетитель перешел в определенную категорию и пытается найти нужную информацию, но не находит ее на первой странице, захочет ли он продолжать поиск на следующих? Наверное, процентов 90 уйдет или покинет данную страницу без перехода на следующие страницы рубрики. Но если вы выведете все посты тогда существует гораздо большая вероятность что пользователь найдет нужную ему информацию и перейдет по ссылке дальше.
Рассуждать по этому поводу можно очень долго, давайте я покажу как отменить пагинацию, а вы уж сами делайте выводы нужно вам это или нет.
На самом деле все очень просто:
- Открываем файл functions.php в папке с темой, если такового нету тогда создаем его.
- Вписываем небольшой код, сохраняем изменения и проверяем результат.
function my_post_queries( $query ) <
if (!is_admin() && $query->is_main_query())<
Этот код нужно добавить между , это понятно но напомнить стоит.
Что мы делаем? Первое условие не обязательное, оно касается главной страницы сайта, мы установили вывод 5 постов на одной странице, далее идет пагинация.
Второе условие ( if(is_category())< $query->set(‘posts_per_page’, 999); > ) говорит следующее:
Если страница с рубриками, тогда выводим последние 999 постов данной категории. Это число вы можете поставить какое угодно, в зависимости от количества записей в категориях.
Как мы заметили вывод названий, описаний и непосредственно постов простое дело, главное знать куда и что писать))). Надеюсь данная статья была вам полезна. Есть возражения или дополнения? Оставляйте их в комментариях. Так же вы можете изучить другие полезные уроки для начинающих пользователей WordPress, желаю удачи в ваших начинаниях.
Источник