Подскажите, что нужно сделать, чтобы функция the_posts_pagination заработала.
Можно ли вообще заставить работать эту функцию пагинации для кастомных запросов? В интернете нашел только информацию о том, что нужно использовать query_posts, но этого делать не очень бы хотелось.
Модератор
Yuri
(@yube)
Самое правильно решение — использовать страницы и рубрики по назначению, а не пытаться вывести рубрику на статической странице.
Очень возможно, что Айседора Дункан так и делает. Может быть, она в кабинете обедает, а кроликов режет в ванной. Может быть. Но я не Айседора Дункан!..
Очень рекомендую прислушаться к совету профессора Преображенского и обедать в столовой, а оперировать в операционной.
В интернете нашел только информацию о том, что нужно использовать query_posts,
Устаревшие и вредные советы. Полностью перешибать в шаблоне инициализацонную выборку — mauvais ton. 99% задач кастомизации выборки решается с помощью хука ‘pre_get_posts’.
А для изменения вывода внешнего вида рубрики тогда нужно редактировать файл category.php и использовать условие if ( in_category() )
? Все верно?
Модератор
Yuri
(@yube)
А для изменения вывода внешнего вида рубрики тогда нужно редактировать файл category.php
Не обязательно. Можно скопировать шаблон category.php в category-{slug}.php или category-{id}.php и издеваться над ним.
Матчасть: Иерархия шаблонов « WordPress Codex
условие if ( in_category() )
Это условие для записи, входящей в рубрику. Для проверки рубрики используется is_category()
. Матчасть: Conditional Tags « WordPress Codex
Можно скопировать шаблон category.php в category-{slug}.php или category-{id}.php и издеваться над ним.
У меня на сайте не используется /category/ в url’е. Как быть в этом случае?
Модератор
Yuri
(@yube)
По урлу движок определяет что выводить, а уже затем ищет подходящий шаблон. Прямой связи между буквами в урле и именами файлов шаблонов нет.
Багофича WP позволяет движку определить запрос «рубрика» без наличия /category/ в урле.
Т.е. лучшим вариантом будет вернуть /category/ в адреса страниц и использовать category-{slug}.php?
Т.е. лучшим вариантом будет вернуть /category/ в адреса страниц и использовать category-{slug}.php?
Давайте я Вам процитирую еще раз:
Прямой связи между буквами в урле и именами файлов шаблонов нет.
Багофича WP позволяет движку определить запрос «рубрика» без наличия /category/ в урле.
Добавлю только — ВП определяет шаблон соотнося запрошенный урл с настройками ЧПУ.
Давайте я Вам процитирую еще раз:
Да это я понял. Просто слово «багофича» настораживает…
Модератор
Yuri
(@yube)
Просто слово «багофича» настораживает…
И это хорошо, и это правильно.
Кто более-менее давно работает с WP, те один раз уже пережили «счастливый» момент практически массового паралича плгинов, удаляющих ‘/category/’ из урла. Это раз.
При удалении этого слова перестают работать некоторые фичи движка. Это два.
Но тем не менее, практика удаления ‘/category/’ довольно широко распространена. То ли из-за того, что слово не подходит по смыслу (а поменять базу рубрик религия не позволяет), то ли из-за веры в догмат «чем короче урл, тем лучше индексация«. То ли за компанию — как я 🙂
Создал страницу на основе category-{slug}.php. В тег title записывается заголовок последнего поста. Как его можно поменять на свой кастомный?
Модератор
Yuri
(@yube)
Создал страницу на основе category-{slug}.php.
Что-то Вы не то делаете. Не нужно ничего создавать. Тем более на основе шаблона. WP работает в другую сторону. Он смотрит по url, что запросили, выбирает из базы нужное, находит подходящий шаблон и с его помощью выводит то, что выбрал. «На основе шаблона» ничего не создается, шаблон только используется, шаблон вторичен.
И очень рекомендую прочитать в Кодексе статью Страницы
Я создал файл category-news.php, чтобы немного поменять внешний вид отображения записей из рубрики «Новости». Т.е. при переходе по ссылке /category/news/ я попадаю в созданный мной шаблон, а не в стандартный category.php.
Я что-то не так сделал?
Модератор
Yuri
(@yube)
Вроде все так. Тогда зачем Вы пишете «Создал страницу»? «Страница» — очень многозначное слово, вносит много путаницы.
Имеется в виду <title>
в <head>
или вывод the_title()
?
С шаблоном category.php title нормальный?