Come aggiungere contenuto a the_content usando add_filter con un custom post type?

12 set 2011, 05:48:54
Visualizzazioni: 14.6K
Voti: 10

Ho un custom post type che funziona correttamente, ma parte del testo nella pagina è lo stesso per ogni post, quindi vorrei aggiungerlo tramite una funzione.

Ho impostato questo codice:

// Funzione per aggiungere contenuto predefinito
function new_default_content($content) {
    global $post;
    if ($post->post_type == 'custom-post-type') {
        $content = 'Test text here';
    }
    return $content;
}
// Aggiungi il filtro a the_content
add_filter('the_content', 'new_default_content');

Tuttavia, quando aggiorno la pagina, vedo solo "Test text here" e non il contenuto del post (da the_content).

Se commento questa funzione, il contenuto del post riappare. Cosa sto sbagliando?

0
Tutte le risposte alla domanda 2
4
10

Stai sovrascrivendo completamente il contenuto invece di aggiungerlo. Devi fare qualcosa come $content .= 'Testo di prova qui'; invece.

12 set 2011 06:26:40
Commenti

Molto potente in quel periodo, grazie! Un'altra domanda: sto usando un plugin per mostrare i pulsanti social per Like, +1 ecc. e appaiono sopra il new-default-content — c'è un modo per far apparire i pulsanti sotto? Pensavo che questo filtro avrebbe "unito" the_content e new_default_content come una sezione completa.

George C George C
13 set 2011 18:45:34

Beh, stai aggiungendo il nuovo contenuto, quindi apparirà dopo. Potresti provare ad agganciare il filtro con una priorità più alta per farlo elaborare prima che lo faccia il plugin, perché anche il plugin sta usando lo stesso filtro.

helenhousandi helenhousandi
13 set 2011 20:27:43

Ah, guarderò la cosa delle priorità — grazie ancora!

George C George C
14 set 2011 08:46:43

Per tua informazione, ho sperimentato con la priorità e ha funzionato! Grazie ancora :)

George C George C
14 set 2011 20:56:44
1
-1

In modo semplice `

               if ($post->post_type == 'custom-post-type') {
                   $new_content= 'Testo di prova qui';
                                }
                       return $content.$new_content;
18 nov 2015 09:22:21
Commenti

Il solo codice non è considerata una risposta di buona qualità. Dovresti spiegare cosa fa il codice e come risponde alla domanda; in questo modo i lettori che sono principianti nella programmazione potranno comprendere la tua risposta. Puoi spiegare il tuo codice?

cybmeta cybmeta
18 nov 2015 14:56:31