Как удалить ссылку "читать далее" из отрывка произвольного типа записи

11 нояб. 2013 г., 23:31:30
Просмотры: 42.6K
Голосов: 9

Есть ли способ добавить какой-то фильтр pre_get_posts(), чтобы убрать ссылку "читать далее", которая появляется в конце the_excerpt() только для одного определенного произвольного типа записи?

Если да, не могли бы вы помочь мне с кодом? Я работаю над этим некоторое время, но пока безрезультатно. Буду очень благодарен за любую помощь. Спасибо!

3
Комментарии

Если вам нужно быстрое и простое решение, вы всегда можете просто скрыть ссылку read_more для этого конкретного CPT с помощью display:none

Jonathan Jonathan
12 нояб. 2013 г. 00:04:51

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

Evster Evster
12 нояб. 2013 г. 00:28:24

Ответ на этот вопрос зависит от темы и не относится конкретно к WordPress, так как разные темы включают разный код для добавления ссылки "Читать далее" http://codex.wordpress.org/Customizing_the_Read_More#Displaying_a_.22more.E2.80.A6.22_link_when_using_the_the_excerpt.28.29

Brad Dalton Brad Dalton
22 мая 2014 г. 09:27:10
Все ответы на вопрос 5
0

Я исправил это, добавив следующее в functions.php

remove_filter('get_the_excerpt', 'wp_trim_excerpt');

Спасибо Удаление текста "Подробнее" или [...] из короткой записи

8 дек. 2019 г. 07:50:40
0

Добавьте следующий код в файл functions.php, чтобы отображать ссылку "читать далее" для всех типов записей, кроме custom_post_type.

function excerpt_read_more_link($output) {
  global $post;
  if ($post->post_type != 'custom_post_type')
  {
    $output .= '<p><a href="'. get_permalink($post->ID) . '">читать далее</a></p>';  
  }
  return $output;
}
add_filter('the_excerpt', 'excerpt_read_more_link');
1 янв. 2014 г. 23:30:07
1

Простое решение — добавить следующий код в style.css:

 a.read-more {
    display:none;
 }

Этот код применяется к <a class="read-more">

6 февр. 2016 г. 01:09:13
Комментарии

Должен быть помечен как правильный ответ, так как метод не предоставляет параметра для его переопределения.

sGambolati sGambolati
25 окт. 2018 г. 23:59:14
3

Как насчёт этого? По сути, это способ кастомизировать текст, добавив callback-функцию в файл functions.php. Я думаю, однако, что если просто вернуть пробел, то это должно переопределить текст и ничего не отображать.

// Заменяет текст "more" в цитате (excerpt) на ссылку
function new_excerpt_more($more) {
   global $post;
   return ' ';
}
add_filter('excerpt_more', 'new_excerpt_more');

Я взял это из Кодекса WordPress

Редактирование:

Это не тестировалось, но что если сделать так:

// Заменяет текст "more" в цитате (excerpt) на ссылку
function new_excerpt_more($more) {
   global $post;
   if ($post->post_type == 'your-cpt')
   {
      return "&nbsp;";
   }
}
add_filter('excerpt_more', 'new_excerpt_more');

Повторюсь, я не тестировал это, но, возможно, это направит вас в правильном направлении (например, используйте var_dump($post), чтобы понять, как можно адаптировать функцию new_excerpt_more под ваши нужды.

12 нояб. 2013 г. 00:39:50
Комментарии

Думаю, вы на правильном пути, но вставка этого точного кода в мой файл functions.php фактически ломает весь сайт. Также мне нужно, чтобы функция выбирала только записи из пользовательского типа записей 'staff-members'.

Evster Evster
12 нояб. 2013 г. 00:53:20

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

Evster Evster
12 нояб. 2013 г. 01:41:36

В конце функции нужно возвращать $more, иначе все остальные типы записей потеряют тег/текст "Читать далее".

Sisir Sisir
22 мая 2014 г. 07:40:17
0
-1
function custom_theme_developement_view_product_button(){
    global $product;
    $link = $product->get_permalink();
    echo '<a href="" class="added_to_cart wc-forward" title="Просмотр корзины"></a>'; 
}
add_action( 'woocommerce_after_shop_loop_item', 'custom_theme_developement_view_product_button', 11 );
14 июл. 2022 г. 12:22:18