• Добрый день всем! У меня на сайте пять рубрик не соответствуют тематике сайта и я успешно удалил их в функционс от попадании на главной.
    Но вывод этих рубрик нужны на отдельной странице , что можете посоветовать , стоит ли создать отдельную страницу шаблон например под названием «наши услуги» /nashiuslugi, и включать там вывод только этих пять рубрик таким кдом <?php if ( have_posts() ) : query_posts($query_string .’cat=-1&posts_per_page=10′); while ( have_posts() ) : the_post(); ?>

    .Или мне, чайнику кто то даст более разумный ответ?
    речь идет о рубриках которые я добавил меню
    Услуги
    РАЗРАБОТКА ……
    и пр

    грубо говоря , если адрес https://www.rianovost.ru/ выводит все рубрики кроме этих выше пять рубрик, то адрес https://www.rianovost.ru/riauslugi/ будет выводит наоборот только эти 5 рубрик.
    спасибо!

    Страница, с которой нужна помощь: [войдите, чтобы увидеть ссылку]

Просмотр 9 ответов — с 1 по 9 (всего 9)
  • Модератор Юрій

    (@yube)

    стоит ли создать отдельную страницу шаблон например под названием «наши услуги» /nashiuslugi, и включать там вывод только этих пять рубрик таким кдом <?php if ( have_posts() ) : query_posts($query_string .’cat=-1&posts_per_page=10′); while ( have_posts() ) : the_post(); ?>

    Не стоит. query_posts в шаблоне — источник головной боли.

    Я бы создал рубрику «услуги» и эти не соответствующие тематике рубрики сделал ее дочерними.

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

    Я вчера в один момент сделал , но потом заподозрил что то интуитивно и удалил этот шаблон с кюери постом , но сейчас в функшонс пхп запрет стоит на этих рубрик таким образом

    
    <?php
    //исключить категории из главной
    function rianovost_category_home($query){
        if ($query->is_home){
            $query->set('cat','-1575','-1576','-1577','-1578','-1579');}
        return $query;}
    add_filter('pre_get_posts', 'rianovost_category_home');
    

    где ‘-1575′,’-1576′,’-1577′,’-1578′,’-1579′ как раз эти рубрики , они не выводятся на главной странице.
    потом создал шаблон page-riauslugi.php копипастом вставил содержимое из index.php потом в этом файле заменил в начале комент

    
    <?php
    /*
     * Template Name: riauslugi
     * Description: Page template 
     */
    

    далее где

    
    
    			if ( have_posts() ) :
    				while ( have_posts() ) : the_post();
    

    между ними добавил текст

    
    query_posts('category_name=uslugi');
    

    получилсь

    
    			if ( have_posts() ) :
    query_posts('category_id=1575,1576,1577,1578,1579');
    				while ( have_posts() ) : the_post();
    

    Потом создал страницу со слагом riauslugi получился по адресу
    https://www.rianovost.ru/riauslugi/
    в редакторе страницы присвоил ранее созданный шаблон page-riauslugi
    вроде все заработал, но мне что-то не нравился такой подход, и в последствии удалил страницу .
    Сейчас у меня рубрика Услуги родитель а остальные четыре дочки , и я могу в меню тоже так делать Услуги с подменю четырем типам услуг, но в таком случае при создании объявлении нужно что в записях помимо четырех дочек указать рубрику услуги пока да такой вариант пригодится, но по мере расширения перечня услуг это не очень хорошая идея, по этому я хотел бы, что если даже в объявлении указать всего лишь одну рубрику из выше перечисленных, то записи все ровно попадались по одному адресу например https://www.rianovost.ru/riauslugi/
    Я понимаю, что можно создать поддомен и его задействовать только с вышеуказанными рубриками а в родительском домене в пункт меню добавить произвольную ссылку на поддомен с названием РИА Услуги . Но такой вариант пахнет геморроем .
    Про кастомный тип ничего не слышал, можно по подробней или ссылку на инструкцию

    Может лучше не парится и создать поддомен например uslugi.rianovost.ru что легче по трудоемкости и по времени ?

    Модератор Юрій

    (@yube)

    но в таком случае при создании объявлении нужно что в записях помимо четырех дочек указать рубрику услуги

    Зачем? WP, если специально не запретить, в рубрике выводит записи и из текущей рубрики, и из ее дочерних. И не нужно никаких лишних страниц плодить на ровном месте.

    Тогда задача практически решена, значит те, кто пишет объявления достаточно указать один из дочерних рубрик и эти записи попадут на на родительскую рубрику, конечно в таком случае никакой страницы создать не нужно, вордпресс и так создаёт страницу для каждой рубрики, я об этом не знал. Это вполне устраивает меня то, что и требовался делать!
    Ещё вопрос :
    Я выше рассказал, каким образом в function.php запретил вывод этих рубрик на главной, если я ещё создаю дочерную рубрику к «услуги» они автоматом попадут ли в список исключения или вновь надо редактировать function.php и добавить id дочерних рубрик?
    И наконец-то, способ запрета в function.php вывода тех рубрик на главной предпочтительный или не стоит их исключать командой $query. Может быть и есть другие более предпочтительные способы?
    Спасибо!

    Модератор Юрій

    (@yube)

    ‘pre_get_posts’ — правильный метод. Чтобы каждый раз вручную не добавлять рубрики, можно прямо в запрещалке получить список дочерних от «услуги», например, функцией get_categories

    Юрий Спасибо большое! Я Создал поддомен, но это так сказать , для экспериментов, по этому остается актуальным ваш вариант:
    1. Создать пользовательские типы
    1.1 записей
    1.2 рубрик
    1.3. меток
    2. применить к ним макет сайта , то есть пользовательские стили пока не нужны
    3. Запрет вывода пользовательских записей, рубрик и меток на главной или если по умолчанию не выводятся еще лучше
    4. вывод пользовательских записей, меток и рубрик на отдельной странице (вернее по отдельному адресу (слагу) где не будут выводятся не стандартные рубрики, метки и записи (только пользовательские) , одним словом копия сайта в сайте, но с другой тематикоой. Буду чрезвычайно благодарен если поможете с инструкцией с нуля, дел в том, что в интернете полн разных инструкции и я совсем запутался .
    Еще раз спасибо

    Модератор Юрій

    (@yube)

    1. Создать пользовательские типы
    1.1 записей
    1.2 рубрик
    1.3. меток

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

    если поможете с инструкцией с нуля

    Формат форума не предусматривает написания циклов лекций 🙂
    Ссылку тоже не дам, просто потому, что мне такие инструкции без надобности, и я не знаю, где они водятся. Извините.
    Возможно, кто-то из «методистов» поможет.

    Я долго изучал все вдоль и поперёк, есть там разные инструкции по созданию таксономии и прочее, но я на мой взгляд выбрал самый простой вариант не перегружая и сайт и свой головной мозг заодно.
    1. Запретил вывод одной рубрики на главной в functions.php, заодно попали под запрет её дочерние рубрики, что и мне требовался.
    2. Создал в меню пункт из той рубрики, которая запрещено выше и нажимая на этот пункт попадаем на «страницу» где выводятся записи отдельной рубрики с дочерними рубриками вне зависимости от того, при создании записи указано родительская рубрика или только дочерняя, _этого и я хотел.
    Конечно есть другой вариант:
    2.2.создать шаблон, в нем указать вывод определённых записей, сохранить в новом названии, потом создать страницу, применить к ним шаблон, потом в пункт меню добавить эту страницу, но этот вариант более трудоёмкий и незачем погружаться, если просто можно поступать по п. 2. Но есть один нюанс, например хочется, что применить к новой странице другой дизайн, тогда нужно действовать по пункту 2.2. Но это мне не нужно, по крайней мере пока не нужно.
    3. О таксономии :
    Кроме меток и рубрик можно выйти из этих структур и создать собственные таксономии, как иерархические (рубрики) , так и плоские (метки), можно и добавить или убавить разные атрибуты к разным таксономиям.
    Но я поступал по другому, в плагине rank math seo удалил префикс «category» и в итоге уже название категории превратились в таксономии, опять же повторяю, это актуально, если к новым таксономиям не нужно применить специфические свойства отличных от стандартных свойств к рубрикам
    ————————-
    Теперь в итоге у меня получилось интересная ситуация :
    Создал рубрику «услуги» задал слаг «services», запрещал вывод на главной, убрал в плагине category и по сути появился новая таксономия «services» который доступен по адресу https://www.rianovost.ru/services/ где я могу назначить определённые количества дочерних рубрик, и соответственно записи этих дочерних рубрик выводятся по данному адресу и будут доступны каждые по своему слагу, например https://www.rianovost.ru/services/remont-i-stroitelstvo/,
    А сами записи уже по прямой ссылке mysite.ru/zapis а не /services/remont-i-stroitelstvo/zapis такой вывод адресов я специально настроил в настройках «постоянные ссылки».
    Далее в archive.php (в моей теме нет файла category.php и за вывод рубрик отвечает archive.php) специальным кодом назначил вывод списка дочерних рубрик кроме самих записей , применил к ним дизайн css.
    Таким образом я думаю, что не зачем создавать новые таксономии, если можно убрать /category и автоматом каждая рубрика является как новая таксономия, можно и в принципе поменять дизайн если создавать шаблон например archive-services.php правда, я ещё не знаю каким образом можно подключить шаблон к рубрике и вообще можно ли этого делать.
    Таким образом прошу вас, оцените мои действия, правильные ли они и стоит ли отметить вопрос как решенным?
    Если у вас есть замечания, прошу их изложить здесь.
    Спасибо за внимание!

Просмотр 9 ответов — с 1 по 9 (всего 9)
  • Тема «Две страницы главной» закрыта для новых ответов.