Come rimuovere il link "leggi di più" dall'excerpt di un custom post type

11 nov 2013, 23:31:30
Visualizzazioni: 42.6K
Voti: 9

C'è un modo per aggiungere un filtro tipo pre_get_posts() per rimuovere il link "leggi di più" che appare alla fine di the_excerpt() solo per un determinato custom post type che specifico?

Se possibile, qualcuno può aiutarmi con il codice? Ci sto lavorando da un po' ma non sono riuscito a concludere nulla. Qualsiasi aiuto sarebbe molto apprezzato. Grazie!

3
Commenti

Se desideri una soluzione rapida e semplice, potresti sempre usare display:none sul link read_more per quel CPT specifico

Jonathan Jonathan
12 nov 2013 00:04:51

Grazie, ci avevo pensato. Ma preferirei eliminare completamente il link se possibile, in modo che Google non segua e non memorizzi nella cache queste pagine specifiche.

Evster Evster
12 nov 2013 00:28:24

La risposta a questa domanda è specifica del tema e non specifica di WordPress, poiché temi diversi includono codice diverso per aggiungere il link read more 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 mag 2014 09:27:10
Tutte le risposte alla domanda 5
0

Ho risolto questo problema aggiungendo quanto segue al file functions.php

remove_filter('get_the_excerpt', 'wp_trim_excerpt');

Cortesia di Rimuovi il testo "altro" o [...] dai post brevi

8 dic 2019 07:50:40
0

Inserisci il seguente codice in functions.php per mostrare "leggi tutto" su tutti i tipi di post eccetto 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) . '">leggi tutto</a></p>';  
  }
  return $output;
}
add_filter('the_excerpt', 'excerpt_read_more_link');
1 gen 2014 23:30:07
1

Una soluzione semplice è inserire il seguente codice all'interno di style.css:

 a.read-more {
    display:none;
 }

Questo codice agisce sugli elementi <a class="read-more">

6 feb 2016 01:09:13
Commenti

Dovrebbe essere contrassegnato come risposta corretta, perché il metodo non fornisce un parametro per sovrascriverlo.

sGambolati sGambolati
25 ott 2018 23:59:14
3

Che ne dici di questo? Fondamentalmente è un modo per personalizzare il testo aggiungendo una funzione di callback al file functions.php. Tuttavia, sto pensando che se restituisci semplicemente uno spazio, allora dovrebbe sovrascriverlo e non visualizzare nulla.

// Sostituisce il testo "more" dell'excerpt con un link
function new_excerpt_more($more) {
   global $post;
   return ' ';
}
add_filter('excerpt_more', 'new_excerpt_more');

Ho preso questo dal WordPress Codex

Modifica:

Questo non è stato testato, ma cosa succede se fai così:

// Sostituisce il testo "more" dell'excerpt con un link
function new_excerpt_more($more) {
   global $post;
   if ($post->post_type == 'your-cpt')
   {
      return "&nbsp;";
   }
}
add_filter('excerpt_more', 'new_excerpt_more');

Per ribadire, non ho testato questo codice, ma potrebbe metterti sulla strada giusta (ad esempio usa var_dump($post) per vedere come puoi modificarlo all'interno della funzione new_excerpt_more).

12 nov 2013 00:39:50
Commenti

Penso che tu sia sulla strada giusta, ma incollare quel codice esatto nel mio file functions.php in realtà manda in crash l'intero sito. Inoltre, avrò bisogno che la funzione recuperi solo i post dal tipo di post personalizzato 'staff-members'.

Evster Evster
12 nov 2013 00:53:20

Grazie per l'aiuto! C'è ancora qualche tipo di errore nella sintassi che manda giù l'intero sito e carica una pagina vuota. Vedrò se riesco a capirlo. La tua logica su questo sembra solida.

Evster Evster
12 nov 2013 01:41:36

Devi restituire $more alla fine della funzione altrimenti tutti gli altri tipi di post perderanno il tag/testo "more".

Sisir Sisir
22 mag 2014 07:40:17
0
-1
// Funzione per aggiungere un pulsante "Visualizza prodotto" dopo ogni elemento nel loop dei prodotti
function custom_theme_developement_view_product_button(){
    global $product;
    $link = $product->get_permalink();
    echo '<a href="" class="added_to_cart wc-forward" title="Visualizza carrello"></a>'; 
}
// Aggiunge l'azione dopo ogni elemento nel loop dei prodotti di WooCommerce
add_action( 'woocommerce_after_shop_loop_item', 'custom_theme_developement_view_product_button', 11 );
14 lug 2022 12:22:18