Limitare il numero di parole visualizzate in the_content sull'indice

16 mar 2017, 20:55:45
Visualizzazioni: 16.4K
Voti: 0

Sto avendo un sacco di problemi con questo! Sto cercando di forzare questa pagina a mostrare solo una quantità limitata di parole, indipendentemente dal fatto che inseriscano un tag readmore.

Avevo pensato di usare the_excerpt, ma non aggiunge un link readmore alla fine dell'estratto.

Ho la mia pagina indice che recupera il blog roll usando questo codice:

<div class="entry-content">
    <?php
        /* traduttori: %s: Nome del post corrente */
        the_content( sprintf(
            __( 'altro %s <span class="meta-nav">...</span>', 'gateway' ),
            the_title( '<span class="screen-reader-text">"', '"</span>', false )
        ) );
    ?>
</div>

Nelle mie impostazioni di lettura ho impostato "Per ogni articolo in un feed, mostra" su "riassunto".

Quindi la mia domanda è questa: c'è un modo per limitare the_content() o in alternativa aggiungere un read more a the_excerpt()?

0
Tutte le risposte alla domanda 2
3

Prova wp_trim_words() https://codex.wordpress.org/Function_Reference/wp_trim_words

Non sarai in grado di usarlo con the_content() però perché restituisce il contenuto in output. Dovrai usarlo con get_the_content() che invece restituisce semplicemente le informazioni.

Quindi sarebbe qualcosa del genere

echo wp_trim_words( get_the_content(), $num_words, $more_text );

Modifica:

È bene notare che the_content e get_the_content restituiranno/invieranno in output qualsiasi HTML presente nel tuo contenuto, mentre the_excerpt o get_the_excerpt restituiranno solo il testo. Quindi usa quello che meglio si adatta alle tue esigenze su quante parole vuoi restituire e se ti interessa includere o meno HTML (come immagini o video incorporati) nel tuo output.

16 mar 2017 21:01:58
Commenti

Ian, grazie per il tuo aiuto! Ho provato così e anche in questo modo: echo wp_trim_words( get_the_content(), 40, '<a href="' . esc_url( get_permalink() ) . '">ALTRO</a>'); ma non carica il link e continua a mostrare (altro...) hai qualche idea?

rudtek rudtek
16 mar 2017 21:10:30

Prova a sostituire get_permalink() con get_the_permalink() e vedi se funziona :) Se ancora non va, prova a rimuovere il wrapper esc_url per verificare se è quello a causare il problema.

Ian Ian
16 mar 2017 21:42:00

Ian, almeno così il link appare, ma non funziona del tutto. Se il post ha meno di 40 parole o se il tag more nel post limita l'estratto a meno di 40 parole, usa il link in get_the_content. Ma al di fuori lo aggiunge comunque. Quindi ottengo permalink().'more'. che porta a un errore 404. Sono tornato a una soluzione semplice perché non riuscivo a capirlo. Comunque ti do un voto positivo per lo sforzo. Lo apprezzo molto.

rudtek rudtek
18 mar 2017 19:25:57
0

Non sono riuscito a risolvere questo problema con the_content() quindi ho optato per una soluzione più semplice che funziona:

        the_excerpt();
        echo '<a href="' . esc_url( get_the_permalink() ) . '"> continua...</a>';
18 mar 2017 19:26:49