Es ist in Wordpress, Divi. Es schien mir eine einfache Aufgabe zu sein, aber irgendwie habe ich es nicht geschafft, das richtige Ergebnis zu erzielen, indem ich Tonnen von Stunden mit Codieren und Testen verbracht habe. Derzeit arbeite ich an einer Website, auf der es Beiträge gibt, und ich beabsichtige, dem Benutzer die Möglichkeit zu geben, zu den benachbarten Beiträgen zu springen, indem ein einfacher Link auf sie verweist. Ich habe versucht, sie in functions.php
und dann in single.php
einzufügen, aber das gleiche Ergebnis ... Nichts. Ich habe es über Wordpress debug.log
überprüft, es zeigt, dass die Funktionen überhaupt keinen Wert zurückgeben. Beachten Sie, dass ich debug.log
erwähne, weil ich dort Ausgaben weitergeleitet habe.
add_filter( 'the_content', 'post_navigation', 10, 2 );
function post_navigation($content) {
$post = get_post();
$post_type = get_post_type( $post );
if ( $post_type == 'post' ) {
$next_p = get_previous_posts_link();
$content = $content . $next_p;
return $content;
} else {
return $content;
}
}
Es hat keine richtig formatierte Ausgabe, aber zuerst wollte ich nur ein Ergebnis bekommen. Hinweis: debug.log
zeigt an, dass der Hook the_content zweimal in einem einfachen Beitrag aufgerufen wurde, der zum zweiten Mal mit folgendem Inhalt angezeigt wird:
You are being timed-out out due to inactivity. Please choose to stay signed in or to logoff.</p>
<p>Otherwise, you will be logged off automatically.</p>
Jede Hilfe wäre sehr dankbar!
Warning Edit : Mark Kapluns Antwort bringt einen sehr guten Punkt auf den Punkt - dies wird Ihren Inhalt auf unerwartete Weise verändern. Angenommen, Sie haben eine andere Anwendung, die diesen Beitragsinhalt aus der WordPress-API liest - dieser Inhalt enthält auch diese Links, was wahrscheinlich nicht Ihren Wünschen entspricht. Sie sollten diese Methoden wirklich in Ihren Themenvorlagen anwenden, anstatt diese Informationen an den Inhalt selbst anzuhängen. Möglicherweise können Sie Überprüfungen der Integrität wie das Abgleichen mit der Variablen global $pagenow
oder andere Methoden verwenden, um sicherzustellen, dass Sie diesen Vorgang nur ausführen, wenn Sie einen Beitrag im Front-End anzeigen.
Anscheinend verwenden Sie die falschen Methoden. WordPress ist manchmal etwas knifflig und in diesem Fall möchten Sie get_previous_post_link
anstelle von get_previous_posts_link
verwenden ( note : der Unterschied besteht darin, dass in der Methode, die Sie aufrufen, posts im Plural ist - in der gewünschten Methode ist post singular).
Also probieren Sie diese aus
EDIT: Hier ist ein aktualisiertes Beispiel, das auf Ihrem Code basiert
add_filter( 'the_content', 'post_navigation', 10, 2 );
function post_navigation($content) {
$post = get_post();
if ( 'post' === $post->post_type ) {
$next_p = get_next_post_link();
$prev_p = get_previous_post_link();
$content = "{$content}<br/>{$prev_p} | {$next_p}";
}
return $content;
}
Tu es einfach nicht. Der the_content
-Filter soll den Inhalt automatisch ändern, während Sie versuchen, eine Dekoration hinzuzufügen, keinen Inhalt. Sie werden auf sehr unerwartete Weise verletzt, je nachdem, wo genau Sie den Filter eingestellt haben und wie gut Sie ihn nach der beabsichtigten Verwendung entfernen. (Platzieren Sie es beispielsweise in einem globalen Bereich, und Ihre Auszüge erhalten möglicherweise die Links.)
Wenn Sie den angezeigten Inhalt bearbeiten müssen, indem Sie ihm eine Dekoration hinzufügen, tun Sie dies im Thema, an keinem anderen Ort.