Wordpress: aggiungi automaticamente del testo al contenuto di qualsiasi post o pagina

Aiuto WordPress

A volte vuoi includere una breve nota sotto tutti i post del tuo blog, senza installare un plug-in aggiuntivo. Per me vale la regola: quello che puoi fare senza un plug-in, dovresti farlo senza, perché ogni plug-in gonfia nuovamente Wordpress e spesso i plug-in installati hanno un sovraccarico significativo di funzioni che in realtà non ti servono affatto. Un altro punto che parla contro sempre più plugin è ovviamente la sicurezza di WordPress. La maggior parte degli attacchi degli hacker viene eseguita tramite plug-in Wordpress obsoleti o programmati in modo non sicuro. Il core di WordPress è solitamente molto sicuro se ti occupi degli aggiornamenti.

Soluzione tramite functions.php

Volevo aggiungere un addendum agli articoli del mio blog che indica che partecipo al programma di affiliazione di Amazon. Secondo il nuovo regolamento di Amazon nel 2018, la frase "In qualità di partner Amazon, guadagno dagli acquisti idonei". essere impostato su ogni pagina in cui si trova la pubblicità di Amazon. Dal momento che non volevo modificare tutte queste pagine singolarmente, aggiungerò solo la nota sotto ogni post.

Per aggiungere funzioni così piccole, Wordpress offre la possibilità di includere i corrispondenti frammenti di codice PHP nel file "functions.php" nella cartella del tema. Se non hai ancora questo file, è meglio crearlo e copiarci il codice qui sotto.

L'hook "the_content" lo rende possibile

Con "Hooks", Wordpress offre opzioni flessibili per espandere o modificare le funzioni che vengono eseguite in Wordpress. Ora usiamo l'hook the_content per modificare il contenuto del post o della pagina prima che venga visualizzato nella pagina web. In modo che l'aggiunta sia installata solo su pagine e post e non venga emessa nelle panoramiche delle categorie o simili, ci sono ancora query in_the_loop() , is_main_query() per uso. Ecco lo script finito:

add_filter( 'the_content', 'filter_the_content_in_the_main_loop' ); function filter_the_content_in_the_main_loop( $content ) { // Controlla se siamo nel ciclo di un post o di una pagina if (( is_single() OR is_page()) && in_the_loop() && is_main_query() ) { // La parte HTML per il font puoi cambiarlo o estenderlo a tuo piacimento return $content . ' Nota: come affiliato Amazon, guadagno dagli acquisti idonei. '; } restituisce $contenuto; }

Se vuoi solo il suggerimento sui post e non sulle pagine (come impronta o simili), allora modifichi l'istruzione if come segue:

if ( is_single() && in_the_loop() && is_main_query() ) {

Se hai domande sull'utilizzo o suggerimenti per migliorare il codice, attendo con ansia i tuoi commenti.

Ti è piaciuto l'articolo e le istruzioni sul blog ti hanno aiutato? Allora sarei felice se tu il blog tramite un'iscrizione stabile sosterrebbe.

21 risposte a "Wordpress: aggiungi automaticamente del testo al contenuto di qualsiasi post o pagina"

  1. Grazie per il post, è esattamente quello che stavo cercando.
    Purtroppo non funziona per me.
    Ma ho anche poca idea dell'argomento.
    Se lo confronto con altre chiamate di funzione, hanno ancora un add_action() o qualcosa di simile.
    Se hai qualche consiglio, sarei felice di sentirti.
    Grazie mille! :-)
    Frank

    1. signore Appleot

      Ehi Franco! 1000 grazie per la tua nota. La chiamata "add_filter ()" era effettivamente mancante. Senza la funzione non sarà incorporata nell'hook. L'ho aggiunto. Si prega di provare se funziona ora con il nuovo codice! LG! Jens

  2. Ciao Frank,
    grazie mille per il tuo contributo! Proprio quello che stavo cercando :)
    Ho un'altra domanda: c'è un modo per leggere la parola chiave focus da Yoast e inserirla nel testo sopra?
    ad es. Nota: in qualità di Associato Amazon, guadagno dagli acquisti idonei di [parola chiave focus], ad es. sala di controllo).
    Cari saluti
    Sandra

    1. Ciao Sandra! Penso che tutte le variabili e la parola chiave focus possano essere utilizzate solo nello snippet. Quindi nel meta titolo e nella meta descrizione. Con la programmazione PHP potresti essere in grado di estrarlo e in qualche modo emetterlo nella frase, ma non ho idea di come farlo.

  3. Ciao Jens,
    una domanda su questo frammento di PHP. Se incollo questo codice, del testo verrà visualizzato sotto i post (finora tutto bene), ma anche sotto le pagine dei prodotti Woocommerce. Questo testo non dovrebbe essere lì. Come devo modificare il codice? Grazie ancora.

    Saluto
    Norbert

    1. Ciao Norberto! Bella domanda, prossima domanda! :D Non ho idea di WooCommerce. Suppongo che dovresti aggiungere una query come "if (is_page ())" o qualcosa del genere, ma con il rilevamento se si tratta di una pagina di prodotto WooCommerce. Ma sfortunatamente non so come funzioni perché non conosco le peculiarità di WooCommerce... :(

  4. Ciao,

    È possibile creare un campo personalizzato con ACF Pro e farlo visualizzare automaticamente per tutti gli importi, preferibilmente direttamente sotto la voce h1? Se sì, esiste un plugin per questo?

    1. Ciao Cristoforo! Non credo che l'ACF sia molto adatto per questo scopo. I campi sono sempre relativi al post corrispondente, se non erro. Ma probabilmente puoi farlo con me annuncio Inserter risolvere. Lì puoi creare un testo e poi dire al campo dove dovrebbe apparire. C'è anche l'opzione "tutti i post" e penso che tu possa anche definire "sotto il titolo" o qualcosa del genere...

      1. Ciao Jens,

        Grazie per la risposta.

        Volevo solo che i prezzi che ho aggiunto ad ACF venissero visualizzati a seconda del post. Poiché ci sono prezzi diversi, è per questo che uso ACF. È possibile combinarlo con l'inseritore di annunci? Dovrebbe semplicemente assomigliare al sito Web di Reiseuhu, così come i diversi prezzi che appaiono lì sotto l'H1.

        1. Puoi anche inserire il codice PHP in un unico posto in Ad Inserter. Se riesci a leggere ed emettere il contenuto del database ACF, hai risolto il problema. :D

  5. Hallo,

    il codice non mi funziona..

    il mio functions.php ha questo aspetto:
    è casa ) {
    $query->set( 'cat', '-390' );
    }
    return $ query;
    }

    add_filter( 'pre_get_posts', 'exclude_category_home' );

    // Aggiungi codice funzione
    funzione mio_backlink() {
    ritorno 'Torna alla pagina principale';
    }
    add_shortcode( 'backlink', 'my_backlink' );

    add_filter( 'the_content', 'filter_the_content_in_the_main_loop' );

    funzione filter_the_content_in_the_main_loop( $content ) {

    // Controlla se siamo nel ciclo di un post o di una pagina
    if (( is_single() && in_the_loop() && is_main_query() ) {
    // Puoi modificare o espandere la parte HTML per il carattere come preferisci
    restituire $ contenuto . ”;
    }

    restituire $ content;
    }

    1. Ciao Cristiano! Fondamentalmente, quando segnali bug alle persone e cerchi aiuto, sarebbe bello avere nient'altro che "funziona per me" come input. Vuoi dire che non c'è uscita? Vedi un messaggio di errore? Ad esempio, vedo che hai eliminato il testo che deve essere emesso. Quindi semplicemente non può arrivare alcun output. Ma forse dai un po 'più di feedback dove è bloccato. Grazie!

      1. E penso che devi sostituire tutte le virgolette singole nel codice con nuove. A me non sembrano quelli che ottieni con MAIUSC + #. Ma potrebbe essere che Wordpress lo stia già visualizzando in modo errato nel mio codice.

  6. Volevo solo dirti un veloce “grazie”, questo è esattamente quello che stavo cercando. Anche io, da profano, l'ho implementato subito.

    Grazie :)

Scrivi un commento

Il tuo indirizzo e-mail non verrà pubblicato. I campi obbligatori sono contrassegnati con * segnato

Nel blog di Sir Apfelot troverai consigli, istruzioni e recensioni sui prodotti Apple come iPhone, iPad, Apple Watch, AirPods, iMac, Mac Pro, Mac Mini e Mac Studio.

Speciali