Wordpress: automatycznie dołączaj tekst do treści dowolnego postu lub strony

Pomoc WordPress

Czasami chcesz umieścić krótką notatkę pod wszystkimi wpisami na swoim blogu - bez instalowania dodatkowej wtyczki. Dla mnie obowiązuje zasada: to, co możesz zrobić bez wtyczki, powinieneś zrobić bez, ponieważ każda wtyczka ponownie nadmuchuje Wordpressa i często zainstalowane wtyczki mają znaczny narzut funkcji, których w rzeczywistości wcale nie potrzebujesz. Kolejną kwestią, która przemawia przeciwko coraz większej liczbie wtyczek, jest oczywiście bezpieczeństwo WordPressa. Większość ataków hakerskich odbywa się za pośrednictwem przestarzałych lub niepewnie zaprogramowanych wtyczek Wordpress. Rdzeń WordPress jest zwykle bardzo bezpieczny, jeśli dbasz o aktualizacje.

Rozwiązanie za pośrednictwem funkcji functions.php

Chciałem dodać dodatek do artykułów na moim blogu, który wskazuje, że biorę udział w programie partnerskim Amazon. Zgodnie z nowym rozporządzeniem Amazona z 2018 r. zdanie „Jako partner Amazon zarabiam na kwalifikujących się zakupach”. ustawić na każdej stronie, na której znajdują się reklamy Amazon. Ponieważ nie chciałem edytować wszystkich tych stron osobno, po prostu dodam notatkę pod każdym postem.

Aby dodać takie małe funkcje, Wordpress oferuje możliwość umieszczenia odpowiednich fragmentów kodu PHP w pliku „functions.php” w folderze motywu. Jeśli nie masz jeszcze tego pliku, najlepiej go utworzyć i skopiować do niego poniższy kod.

Umożliwia to hak „the_content”.

Dzięki „Hooks” Wordpress oferuje elastyczne opcje rozszerzania lub zmiany funkcji działających w Wordpressie. Teraz używamy haka the_content do modyfikowania treści posta lub strony, zanim zostaną one wyrenderowane na stronie internetowej. Aby dodatek był instalowany tylko na stronach i postach i nie był wyświetlany w przeglądach kategorii itp., nadal istnieją zapytania in_the_loop() i is_main_query() do użycia. Oto gotowy skrypt:

add_filter( 'treść', 'filtruj_treść_w_pętli_głównej' ); function filter_the_content_in_the_main_loop( $content ) { // Sprawdź, czy jesteśmy w pętli posta lub strony if (( is_single() OR is_page()) && in_the_loop() && is_main_query() ) { // Część HTML czcionki możesz go zmienić lub rozszerzyć, jak chcesz, zwrócić $content . ' Uwaga: Jako partner Amazon zarabiam na kwalifikujących się zakupach. '; } return $treść; }

Jeśli chcesz tylko podpowiedź przy postach, a nie na stronach (takich jak wydawnictwo lub podobne), zmień instrukcję if w następujący sposób:

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

Jeśli masz jakiekolwiek pytania dotyczące użytkowania lub sugestie dotyczące ulepszenia kodu, czekam na Twoje komentarze.

Podobał Ci się artykuł i czy instrukcje na blogu Ci pomogły? Wtedy byłbym szczęśliwy, gdybyś bloga poprzez stałe członkostwo będzie wspierać.

21 odpowiedzi na „Wordpress: automatycznie dodawaj tekst do treści dowolnego posta lub strony”

  1. Dzięki za post - dokładnie tego szukałem.
    Niestety u mnie to nie działa.
    Ale też nie mam pojęcia o temacie.
    Jeśli porównam to z innymi wywołaniami funkcji, nadal mają add_action() lub coś podobnego.
    Jeśli masz jakąkolwiek radę, chętnie się z Tobą skontaktuję.
    Dziękuję Ci bardzo! :-)
    Szczery

    1. sir appleot

      Hej Franku! 1000 dzięki za wiadomość. Rzeczywiście brakowało wywołania „add_filter()”. Bez tej funkcji funkcja nie zostanie wbudowana w hak. Dodałem to. Spróbuj, czy działa teraz z nowym kodem! LG! Jensa

  2. Cześć Frank,
    bardzo dziękuję za Twój wkład! Dokładnie to, czego szukałem :)
    Mam jeszcze jedno pytanie: czy istnieje sposób na odczytanie słowa kluczowego fokus z Yoast i wstawienie go do powyższego tekstu?
    np. Uwaga: jako współpracownik Amazon zarabiam na kwalifikujących się zakupach [słowo kluczowe], np. dyspozytornia).
    Liebe Grüße
    Sandra

    1. Cześć Sandro! Myślę, że wszystkie zmienne i słowo kluczowe focus mogą być użyte tylko we fragmencie. Więc w meta tytule i meta opisie. Przy programowaniu PHP możesz być w stanie go wyodrębnić i jakoś wypisać w zdaniu, ale nie mam pojęcia, jak to zrobić.

  3. Witaj Jens,
    pytanie dotyczące tego fragmentu kodu PHP. Jeśli wkleję ten kod, to jakiś tekst pojawi się pod postami (na razie dobrze), ale także pod stronami produktów Woocommerce. Tego tekstu nie powinno tam być. Jak mam dostosować kod? Dziękuję raz jeszcze.

    Powitanie
    Norbert

    1. Witaj Norbercie! Dobre pytanie, następne pytanie! :D Nie mam pojęcia o WooCommerce. Przypuszczam, że musiałbyś dodać zapytanie typu „if (is_page())” lub coś takiego, ale z wykrywaniem, czy jest to strona produktu WooCommerce. Ale niestety nie wiem jak to działa, ponieważ nie znam osobliwości WooCommerce... :(

  4. Cześć,

    Czy możliwe jest utworzenie własnego pola za pomocą ACF Pro i automatyczne wyświetlanie go dla wszystkich kwot, najlepiej bezpośrednio pod nagłówkiem h1? Jeśli tak, czy jest do tego wtyczka?

    1. Witaj Krzysztofie! Nie sądzę, aby ACF dobrze się do tego nadawał. Pola są zawsze powiązane z odpowiednim postem, jeśli się nie mylę. Ale prawdopodobnie możesz to zrobić ze mną Wstaw reklamowy rozwiązywać. Tam możesz utworzyć tekst, a następnie wskazać polu, gdzie ma się pojawić. Jest też opcja „wszystkie posty” i myślę, że można też zdefiniować „pod nagłówkiem” czy coś…

      1. Cześć Jens,

        Dziękuję za odpowiedź.

        Chciałem tylko, aby ceny, które dodałem do ACF, wyświetlały się w zależności od postu. Ponieważ są różne ceny, dlatego używam ACF. Czy można to połączyć z wstawiaczem reklam? Powinno to wyglądać jak strona internetowa Reiseuhu, a także różne ceny, które pojawiają się tam pod H1.

        1. Możesz także wstawić kod PHP w jednym miejscu w Ad Inserter. Jeśli uda Ci się odczytać i wyprowadzić zawartość bazy danych ACF, problem został rozwiązany. :D

    1. Witaj Christofie! Będziesz musiał to zrobić za pomocą CSS. Możesz też wbudować go bezpośrednio w tag HTNL za pomocą style=”xyz”.

  5. chrześcijański

    Witam,

    kod mi nie działa..

    moje funkcje.php wygląda tak:
    to dom ) {
    $query->set('kot', '-390' );
    }
    return $ query;
    }

    add_filter('pre_get_posts', 'exclude_category_home');

    // Dodaj krótki kod
    funkcja my_backlink() {
    powrót 'Powrót do przeglądu";
    }
    add_shortcode( 'link zwrotny', 'my_link zwrotny' );

    add_filter( 'the_content', 'filter_the_content_in_the_main_loop');

    funkcja filter_the_content_in_the_main_loop( $content ) {

    // Sprawdź, czy jesteśmy w pętli posta lub strony
    if (( is_single() && in_the_loop() && is_main_query() ) {
    // Możesz zmienić lub rozszerzyć część HTML dla czcionki, jak chcesz
    zwróć $treść . ”;
    }

    return $ content;
    }

    1. Jen Kleinholz

      Cześć Christianie! Zasadniczo, kiedy zgłaszasz ludziom błędy i szukasz pomocy, byłoby miło mieć jako dane wejściowe nic więcej niż „działa dla mnie”. Masz na myśli brak wyjścia? Czy widzisz komunikat o błędzie? Na przykład widzę, że usunąłeś tekst, który ma zostać wydrukowany. Więc po prostu żadne wyjście nie może nadejść. Ale może dasz trochę więcej opinii, gdzie utknął. Dzięki!

      1. Jen Kleinholz

        I myślę, że musisz zastąpić wszystkie pojedyncze cudzysłowy w kodzie nowymi. Dla mnie nie wyglądają jak te, które dostajesz za pomocą SHIFT + #. Ale może być tak, że Wordpress już wyświetla to niepoprawnie w moim kodzie.

  6. Chciałem tylko powiedzieć szybkie „dziękuję”, dokładnie tego szukałem. Nawet ja, jako laik, od razu go wdrożyłem.

    Dziękuję :)

Napisz komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone * oznakowane

Na blogu Sir Apfelot znajdziesz porady, instrukcje i recenzje produktów Apple, takich jak iPhone, iPad, Apple Watch, AirPods, iMac, Mac Pro, Mac Mini i Mac Studio.

Promocje