Hinzufügen zusätzlicher Werbung nach festgelegter Absatznummer

Lesezeit: 3 Minuten

Benutzer-Avatar
Kelvin Farell

Ich habe derzeit meine Website so eingerichtet, dass nach dem zweiten Absatz eines Artikels automatisch eine Google Adsense-Anzeige eingefügt wird, aber ich würde dies gerne verbessern, wenn jemand helfen kann.

Ich möchte diesen Code ergänzen, um weitere 2 Anzeigen hinzuzufügen; eine nach einem 6. Absatz und eine weitere nach einem 10. Absatz. Wenn der Artikel diese Absatzzahlen nicht erreicht, sollte die Werbung nicht geschaltet werden.

Es ist wahrscheinlich etwas wirklich Offensichtliches, aber alles, was ich versucht habe, hat dazu geführt, dass die Datei functions.php abstürzt, wenn ich die Site neu lade.

Mein Code ist…

add_filter( 'the_content', 'prefix_insert_post_ads' );

function prefix_insert_post_ads( $content ) {

$ad_code="<div class="mobilead .visible-xs-block hidden-sm hidden-md hidden-lg"><script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script><ins class="adsbygoogle"
 style="display:block"
 data-ad-client="ca-pub-XXXX"
 data-ad-slot="1716361890"
 data-ad-format="auto"></ins><script></script></div>";

if ( is_single() && ! is_admin() ) {
return prefix_insert_after_paragraph( $ad_code, 2, $content );
}

return $content;
}

// Parent Function that makes the magic happen

function prefix_insert_after_paragraph( $insertion, $paragraph_id, $content ) {
$closing_p = '</p>';
$paragraphs = explode( $closing_p, $content );
foreach ($paragraphs as $index => $paragraph) {

if ( trim( $paragraph ) ) {
    $paragraphs[$index] .= $closing_p;
}

if ( $paragraph_id == $index + 1 ) {
    $paragraphs[$index] .= $insertion;
}
}

return implode( '', $paragraphs );
}

Als Zusatzfrage: Gibt es eine Möglichkeit, diese Anzeigen so zu beschränken, dass sie nur auf Beiträgen und nicht auch auf Seiten angezeigt werden? Derzeit werden sie überall angezeigt.

Jede Hilfe wäre sehr willkommen.

An Ihrem Anzeigencode ist zu viel falsch, als dass ich versuchen könnte, es zu erraten sollte sein (es hat eine Öffnung <div> aber keine Schließung </div>es scheint Javascript außerhalb von a zu sein <script> Schild)

… also überspringe ich diesen Teil und zeige einfach, wie man einen anderen einfügt paragraph stattdessen – dies wird eingefügt etwas an den gewünschten Stellen und zeigt auch, wie man es benutzt get_post_type() um sicherzustellen, dass Anzeigen nur in Beiträgen angezeigt werden:

add_filter( 'the_content', 'prefix_insert_post_ads' );

function prefix_insert_post_ads( $content ) {
    //The last condition here ensures that ads are only added to posts
    if ( is_single() && !is_admin() && get_post_type() === 'post' ) {
        return prefix_insert_ads( $content );
    }

    return $content;
}

function prefix_insert_ads( $content ) {
    $closing_p = '</p>';
    $paragraphs = explode( $closing_p, $content );
    foreach ($paragraphs as $index => $paragraph) {
        $paragraphs[$index] .= $closing_p;
        if ( in_array($index, array(1, 5, 9)) ) {
            //Replace the html here with a valid version of your ad code
            $paragraphs[$index] .= '<p style="background:#f00">Ad goes here</p>';
        }
    }

    return implode( '', $paragraphs );
}

  • Entschuldigung, ich habe beim Posten meiner Frage einen Codeabschnitt übersehen. Habe es jetzt behoben. Ihre Antwort hat perfekt funktioniert, danke.

    – Kelvin Farrell

    10. August 2015 um 19:38 Uhr

  • Ich bin kein Experte für Google-Anzeigen, aber ich halte es für unwahrscheinlich, dass Sie es sind soll um das (externe) Skript mit jedem Werbeblock hinzuzufügen …

    – Mikk3lRo

    10. August 2015 um 19:44 Uhr

  • Möglicherweise nicht, aber ich bin mir nicht sicher.

    – Kelvin Farrell

    10. August 2015 um 21:41 Uhr

Überprüfen Sie die Funktionen im Abschnitt Bedingter Tags-Index aus https://codex.wordpress.org/Function_Reference

if(!is_page()) {
    // do your tricks
}

Es gibt auch einige andere Funktionen, die Sie möglicherweise benötigen is_home(), is_front_page() und ETC.

  • Vielen Dank! Haben Sie eine Idee, wie Sie die zusätzlichen Anzeigen zum Anzeigen bringen können?

    – Kelvin Farrell

    10. August 2015 um 18:24 Uhr

1257010cookie-checkHinzufügen zusätzlicher Werbung nach festgelegter Absatznummer

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy