Rimuovi il link "Continua a leggere" solo dall'anteprima teaser
Voglio rimuovere il link "Continua a leggere" solo dall'anteprima teaser e non dall'excerpt automatico, per il quale il filtro è già disponibile.
Questo è il codice originale; proviene dal Template Page Template Showcase:
<?php while ( have_posts() ) : the_post(); ?>
<?php
if ( '' != get_the_content() )
get_template_part( 'content', 'intro' );
?>
<?php endwhile; ?>
Ecco l'Intro:
<div class="entry-content">
<?php the_content(); ?>
<?php wp_link_pages( array( 'before' => '<div class="page-link"><span>' . __( 'Pagine:', 'mytheme' ) . '</span>', 'after' => '</div>' ) ); ?>
<?php edit_post_link( __( 'Modifica', 'mytheme' ), '<span class="edit-link">', '</span>' ); ?>
</div><!-- .entry-content -->
-->

Modificare il testo standard per tutti gli estratti:
function custom_excerpt_more($more) {
global $post;
$more_text = '...';
return '… <a href="'. get_permalink($post->ID) . '">' . $more_text . '</a>';
}
add_filter('excerpt_more', 'custom_excerpt_more');
Creare la propria funzione per gli estratti:
// Funzione per estratti di Rafael Marques ;)
function rm_excerpt($limit = null, $separator = null) {
// Imposta il limite standard di parole
if (is_null($limit)){
$excerpt = explode(' ', get_the_excerpt(), '15');
} else {
$excerpt = explode(' ', get_the_excerpt(), $limit);
}
// Imposta il separatore standard
if (is_null($separator)){
$separator = '...';
}
// Generatore di estratti
if (count($excerpt)>=$limit) {
array_pop($excerpt);
$excerpt = implode(" ",$excerpt).$separator;
} else {
$excerpt = implode(" ",$excerpt);
}
$excerpt = preg_replace('`\[[^\]]*\]`','',$excerpt);
echo $excerpt;
}
Utilizzare <?php rm_excerpt(); ?>
quando si desidera visualizzare un estratto personalizzato. Il primo valore imposta il limite di parole e il secondo il separatore. Esempio: <?php rm_excerpt(10,' (...)'); ?>
. Per creare un link separato "leggi tutto", inserire <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>">Leggi tutto?</a>

add_filter( 'the_content_more_link', 'wpsites_read_more_link' );
function wpsites_read_more_link() {
return '<a class="more-link" href="' . get_permalink() . '"></a>';
}
Aggiungi questo al tuo file functions.php e rimuoverà il link "continua a leggere".

Sembra che tu voglia rimuovere il teaser "Continua a leggere" da the_content(). Se è così, questo esempio dal Codex è ciò che ti serve:
Tecniche per il Read More
I parametri all'interno del template tag the_content() sono i seguenti:
<?php the_content( $more_link_text , $strip_teaser ); ?>
Il parametro $more_link_text imposta il testo del link come "Leggi di più". Il secondo parametro, $strip_teaser, determina se il link "more" deve essere nascosto (TRUE) o visualizzato (FALSE). Il valore predefinito è FALSE, che mostra il testo del link.
Per rimuovere il teaser:
Modifica the_content(); nel tuo index.php in questo modo (il secondo parametro controlla questo comportamento):
`the_content('',TRUE,'')`
Includi
<!--noteaser-->
nel testo del post, immediatamente dopo il tag<!--more-->
.
AGGIORNAMENTO
In base al tuo codice, sembra che tu abbia inserito il codice nel posto sbagliato. Senza vedere i tuoi file, probabilmente devi andare in content.php e cercare the_content() per apportare la modifica lì. Ho verificato su uno dei miei temi che utilizza i template e funziona correttamente. Dovresti anche approfondire il funzionamento dei template per comprenderne meglio il meccanismo. In breve:
1 - Rimuovi questo testo dal tuo codice: if ( '' != get_the_content('',TRUE,'') )
2 - Vai su content.php nel tuo tema e trova the_content() e cambialo in the_content('',TRUE,'')
3 - Aggiungi <!--noteaser-->
come indicato sopra
Questo vale se stai usando <!--more-->
per impostare manualmente gli estratti.

Ciao chowwy -- L'ho visto e ho pensato che rimuovesse completamente l'anteprima invece di rimuovere solo il link Continua a leggere. Non è corretto?

Sembra che $strip_teaser indichi se il link "more" debba essere nascosto/mostrato. Non indica che l'estratto stesso venga rimosso.

chowwy -- non funziona. Nota che dice di mettere il tag <!--noteaser--> dopo il tag more, il che non si applica agli estratti teaser perché non hanno tag more. Ha senso? Ho provato a inserire <!--noteaser--> nell'editor comunque e non ho ottenuto nulla.

Marcus, hai del codice che possiamo vedere? È nel loop come the_content() o stai usando the_excerpt() da qualche altra parte?

Per essere chiari, come puoi inserire <!--noteaser--> nel campo dell'estratto manuale dopo il tag <!--more--> quando il campo dell'estratto manuale non utilizza il tag <!--more--> per impostazione predefinita? Non credo che stiamo parlando della stessa cosa.

Quando parlo di estratto manuale, intendo che stai decidendo dove tagliare il testo all'interno dell'editor del post, non utilizzando il campo separato per l'estratto. Se stai utilizzando il campo dell'estratto, questa domanda/risposta potrebbe essere utile - http://wordpress.stackexchange.com/questions/26837/how-to-remove-read-on-content-in-the-excerpt

Questo è il motivo per cui ho usato la parola "teaser", perché a volte WP confonde l'"estratto manuale" con l'"estratto teaser", come puoi vedere link dove distingue tra il teaser e l'estratto manuale: "L'estratto manuale di WordPress viene spesso confuso con l'estratto automatico o con il teaser (la parte di un post che appare nella pagina iniziale quando usi il tag More). Sebbene entrambi siano correlati all'estratto manuale, sono diversi da esso."

Marcus, l'articolo che hai linkato indica che il teaser è la parte di un post che appare nella pagina principale quando usi il tag More. Ecco perché ti ho fornito una risposta che riguarda il teaser. Buona fortuna.

Mi dispiace tanto. Sono in piedi dalle 3:30 per questo lavoro e ho completamente frainteso il codex quando ho aperto il ticket. Grazie mille per il tuo tempo.

Ho dovuto entrare nella cartella wp-includes, nel file formatting.php e modificare la riga 3284, cambiando il numero predefinito di parole da includere nell'estratto con un numero enorme in questo modo:
$excerpt_length = apply_filters( 'excerpt_length', 550000000000000 );
Il valore predefinito è solo di 55
