Поддержка Проблемы и решения убрать ссылку с категории

  • Здравствуйте!!! Мне необходимо, чтобы под записью отображалась категория,но нажимая на нее,ничего не происходило. То есть не работала ссылка. На странице вывода материалов. Если можно поподробнее (новичок в этом деле). Спасибо за помощь

Просмотр 15 ответов — с 1 по 15 (всего 17)
  • Если можно поподробнее

    Чтобы не играть в угадайку — показывайте страницу (её адрес) где нужно убрать и давайте ссылку на используемую тему.

    в functions.php темы добавьте:

    
    //удаление ссылок из вывода the_category start
    function no_links_in_the_category($thelist) {
        return preg_replace('#<a.*?>([^<]*)</a>#i', '$1', $thelist);
    }
    add_filter( 'the_category', 'no_links_in_the_category' );
    //удаление ссылок из вывода the_category end
    

    это если у вас рубрики уже выводятся, но вы хотите убрать ссылку.

    в functions.php темы добавьте:

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

    У богатых свои причуды (с)

    Чтобы не играть в угадайку — показывайте страницу (её адрес) где нужно убрать и давайте ссылку на используемую тему.

    Сайт на локалке. Тема Avada https://avada.theme-fusion.com/

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

    это вы из вредности, да? 😉 весь движок построен на фильтрах и всевозможных хуках, какая к черту нагрузка из-за примитивного прегреплейса?

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

    Сайт на локалке. Тема Avada

    Тема платная, её нет в оф каталоге, так что стоит обратиться к продавцу.

    @flector, да какая вредность… Вы хороший специалист, но порой Ваши фантазии просто поражают… и я с Вами не согласен.

    Вы вот с чего-то решили, что там обязательно будет the_category и выдали «решение». Хотя там может быть что угодно. Более того — ссылка даже может отключаться в настройках темы. К тому же мы достоверно не знаем вообще о чем речь и где «это» должно работать (да я тоже вангую что в мета-данных записей, но это только догадки)
    Поэтому, прежде чем давать какие-то решения, стоит узнать реальное положение вещей.

    Кроме того — Ваш вариант хотя и имеет право на жизнь, но это лишняя, ничем не оправданная нагрузка. Тот факт, что «весь движок построен на фильтрах» не говорит, что нужно безумно это использовать. Тем более, если есть более щадящие методы.

    • Ответ изменён 7 лет, 3 месяца назад пользователем SeVlad.
    • Ответ изменён 7 лет, 3 месяца назад пользователем SeVlad.

    в functions.php темы добавьте:

    Спасибо большое Flector, помогли

    Вы вот с чего-то решили, что там обязательно будет the_category и выдали «решение». Хотя там может быть что угодно более того — ссылка может отключаться в настройках темы.

    да потому что в 99% тем вывод рубрик сделан через the_category, вы и сами это прекрасно знаете 🙂 там где не через the_category — можно по пальцам пересчитать. и вы с чего-то решили, что в настройках темы может быть опция отключения ссылки при выводе рубрики — и после этого вы меня называете фантастом? 🙂 да никому в голову не придет делать такую опцию 🙂

    Кроме того — Ваш вариант хотя и имеет право на жизнь, но это лишняя, ничем не оправданная нагрузка.

    знаете, я вот сегодня выяснил, что plugins_api() в 2 раза тормознее wp_remote_post(), хотя и построена на ней же. вот когда замена одной функции на другую уменьшает время генерации с 1сек до 0.5сек — вот это оптимизация и ради этого стоит напрягаться.

    а ковырять тему, заменяя the_category в куче разных файлах, когда можно добавить в functions.php один маленький фильтр — это за пределами моего разумения. пока движок сгенерирует страницу — там сотни и тысячи фильтров будут выполнены и ваш фильтр в этой куче вообще роли не играет.

    да потому что в 99% тем вывод рубрик сделан через the_category, вы и сами это прекрасно знаете

    Вывод ГДЕ? Вот в мета-данных поста достаточно часто используется get_category (которые по данным Тимура обладает высокой скоростью), а то и *_term*.

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

    Да в разных «навороченых» темах ещё и не такое попадается 🙂 Да, я не помню, что бы встречал именно такое, но встречал и не такое, так что вполне допускаю.
    Хотя с другой стороны, Вы может и правы в том, что убирать ссылку на рубрику, тем более оставляя её название — в этом есть что-то противоестественное. 🙂

    а ковырять тему, заменяя the_category в куче разных файлах,

    Почему в куче? В одном-двух.

    один маленький фильтр

    Дело не самом фильтре как таковом (хотя и в нём тоже), а в функции какую он обрабатывает и регулярках используемых в нём. В ленте напр. будет отрабатывать 10 раз (при деф. настройках ленты) на каждого юзера/борта. Зачем это нужно. если можно просто поменять код. Даже заменим the_category (если используется) на get_category.

    SeVlad, вы когда последний раз в кодекс заглядывали? get_category получает данные указанной рубрики. но никак не выводит список рубрик. то есть для лицевой части эту функцию не используют.

    далее, смотрим тему Twenty Fifteen (ее, потому что я на ней сижу на тестовом сайте). в ней вывод рубрик производится через функцию get_the_category_list, а точнее так:

    
    $categories_list = get_the_category_list( _x( ', ', 'Used between list items, there is a space after the comma.', 'twentyfifteen' ) );
        if ( $categories_list && twentyfifteen_categorized_blog() ) {
            printf( '<span class="cat-links"><span class="screen-reader-text">%1$s </span>%2$s</span>',
                _x( 'Categories', 'Used before category names.', 'twentyfifteen' ),
                $categories_list
                );
        }
    

    и вот что в ней надо поменять, чтобы она не выводила ссылки?
    я лично не знаю. но внутри эта функция применяет фильтры на the_category, а поэтому мой фильтр с прегреплейсом работает.

    PS ну разве что strip_tags на $categories_list повесить. но это все равно не выход — вы же приверженец дочерних тем, фильтр в functions.php можно в дочернею запихнуть, а эта get_the_category_list висит в под-папке inc и как заменить файл template-tags.php в этой под-папке с помощью дочерней темы — я не знаю.

    • Ответ изменён 7 лет, 3 месяца назад пользователем Flector.

    get_category получает данные указанной рубрики. но никак не выводит список рубрик. то есть для лицевой части эту функцию не используют.

    Про необходимость какого-то СПИСКА — это Вы опять же дофантазировали.

    то есть для лицевой части эту функцию не используют.

    Вот тут используют get_category_link: https://themes.trac.wordpress.org/browser/opus/1.4/single.php#L60
    Точно также используется и get_category.

    Вот напр: https://themes.trac.wordpress.org/browser/raindrops/1.449/functions.php#L10817

    • Ответ изменён 7 лет, 3 месяца назад пользователем SeVlad.
    • Ответ изменён 7 лет, 3 месяца назад пользователем SeVlad.

    Про необходимость какого-то СПИСКА — это Вы опять же дофантазировали.

    смысл the_category в том, что она выводит СПИСОК всех рубрик записи. и именно поэтому ее используют для вывода рубрик, а не get_category. а теперь берем вашу тему Opus — и пробуем открыть в ней запись, которая принадлежит 2-м рубрикам — опаньки, а тема выведет только одну рубрику. вы считаете это нормальным?

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

    пробуем открыть в ней запись, которая принадлежит 2-м рубрикам — опаньки, а тема выведет только одну рубрику. вы считаете это нормальным?

    А с чего Вы решили, что для задач сайта, в котором будет использоваться тема, которая так работает это «не нормально»?
    Несколько рубрик для одной записи — это далеко не всем нужно.

    Кроме того беглый поиске по темам, что валяются у меня на ПК показал, что get_category_link используется более чем в половине из них.

    • Ответ изменён 7 лет, 3 месяца назад пользователем SeVlad.
Просмотр 15 ответов — с 1 по 15 (всего 17)
  • Тема «убрать ссылку с категории» закрыта для новых ответов.