Wie füge ich mit add_filter einen benutzerdefinierten Beitragstyp an den Inhalt an?


9

Ich habe einen benutzerdefinierten Beitragstyp, der einwandfrei funktioniert, aber ein Teil des Textes auf der Seite ist für jeden Beitrag gleich, daher möchte ich ihn mithilfe einer Funktion hinzufügen.

Ich habe dies eingerichtet:

function new_default_content($content) {
global $post;
    if ($post->post_type == 'custom-post-type') {
    $content = 'Test text here';
    }
    return $content;
    }
add_filter('the_content', 'new_default_content');

Wenn ich die Seite jedoch aktualisiere, wird nur "Texttest hier" angezeigt und nicht der Inhalt des Beitrags (aus dem_Inhalt).

Wenn ich diese Funktion auskommentiere, wird der Beitragsinhalt wieder angezeigt. Was mache ich falsch?

Antworten:


8

Sie überschreiben den Inhalt vollständig, anstatt ihn anzuhängen. Sie müssen $content .= 'Test text here';stattdessen so etwas tun .


Viel Kraft in dieser Zeit, danke! Eine andere Frage: Ich verwende ein Plugin, um soziale Schaltflächen für "Gefällt mir", "+1" usw. anzuzeigen, und sie werden über dem neuen Standardinhalt angezeigt. Gibt es eine Möglichkeit, die Schaltflächen unten anzuzeigen? Ich nahm an, dass dieser Filter den Inhalt und den neuen Standardinhalt als einen vollständigen Abschnitt "aufteilen" würde.
George C

1
Nun, Sie hängen den neuen Inhalt an, sodass er später angezeigt wird. Sie können versuchen, den Filter mit einer höheren Priorität einzubinden, damit er verarbeitet wird, bevor das Plugin dies tut, da das Plugin auch denselben Filter verwendet.
Helenhousandi

Ah, ich werde mich um die Prioritäten kümmern - nochmals vielen Dank!
George C

Zu Ihrer Information, ich habe mit der Priorität herumgespielt und das hat den Trick gemacht! Nochmals vielen Dank :)
George C

-1

Auf einfache Weise `

               if ($post->post_type == 'custom-post-type') {
                   $new_content= 'Test text here';
                                }
                       return $content.$new_content;

Nur Code wird nicht als Antwort von guter Qualität angesehen. Sie sollten erklären, was der Code tut und wie er die Frage beantwortet. Auf diese Weise verstehen Leser, die Neulinge in der Codierung sind, Ihre Antwort. Können Sie Ihren Code erklären?
Cybmeta
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.