it-swarm.com.de

Automatische Aktualisierung der Beitragsliste nach X Sekunden

ich bin neu in WordPress, und ich brauche hier wirklich eine Hilfe. Meine Hauptseite, liste den Lebenslauf (Auszug) aller Beiträge mit Paginierung auf. Wenn ein Benutzer einen neuen Beitrag veröffentlicht, kann er nur durch erneutes Laden auf der Hauptseite angezeigt werden. Ich möchte wissen, ob es eine Möglichkeit gibt, neue Beiträge wie Facebook automatisch anzuzeigen.

Ich habe bis jetzt keinen Weg gefunden, es zu tun.

Ich habe die folgende Zeile aus meiner index.php entfernt (innerhalb von/wp-content/themes/wp_blogger /):

<?php if (have_posts()) : while (have_posts()) : the_post(); ?>

<?php include(TEMPLATEPATH."/excrept.php"); ?>

<?php endwhile; else: ?>

    <div class="featured_section">
        <div class="featured_in">
            <h3 style="margin-bottom:800px;"><?php _e('Nenhum post encontrado com estes critérios.'); ?></h3>
        </div>
    </div>

<?php endif; ?>

Ich habe den obigen Code in einer load.php (im selben Verzeichnis) abgelegt und in der index.php ersetzt durch:

<script>
$(document).ready(function(){
var callAjax = function(){
$.ajax({
method: "GET",
url: "/RMON/blog/wp-content/themes/wp_blogger/load.php",
success: function(data){
$("#test").html(data);  
}
});
    }   
setInterval(callAjax,5000);
});
</script>
   <div id="test"></div>

Aber kein Glück damit ... ich erhalte diesen Fehler: Schwerwiegender Fehler: Rufe die undefinierte Funktion have_posts () in /var/www/RMON/blog/wp-content/themes/wp_blogger/load.php in Zeile 1 auf

2
Leibovich

Ihre Antwort fällt definitiv in den Bereich von AJAX. Wenn Sie ein Formular verwenden, setzen Sie den onsubmit eventListener auf return false; (plus alle anderen erforderlichen Attribute) wie folgt:

<form onsubmit="return false;">

Dann senden Sie einen Beitrag und analysieren ihn mit PHP. Abhängig von Ihrem gewünschten Effekt und der Eingabe des Benutzers geben Sie eine Antwort auf Ihr wartendes AJAX - Skript aus, die dauern kann den ajax.repsonseText und abhängig davon, ob die Antwort Ihrer Suche entsprach oder nicht, können Sie die innerHTML des gewünschten HTML-Elements nach Belieben einstellen, ohne die Seite zu aktualisieren. Mehr als wahrscheinlich so etwas:

if(ajax.responseText != "error") {
    document.getElementById("userInputDiv").innerHTML = ajax.responseText;
}
1
les

Das sollte trivial sein, um mit AJAX zu tun (es wurde erfunden, um genau diese Art von Dingen zu tun). Sie benötigen einen JavaScript-Code, der eine AJAX -Anforderung sendet, die alle X Sekunden nach dem neuesten Beitrag fragt und den Inhalt Ihres div mit dem zurückgegebenen Inhalt ändert (oder intelligenter ist und neuen div hinzufügt, wenn er neu ist Inhalt)

Auf der Serverseite müssen Sie einen Handler hinzufügen, um Ihre spezifischen Anforderungen zu bearbeiten und den Inhalt des neuesten Posts zurückzugeben. Auf dieser Codex-Seite http://codex.wordpress.org/AJAX_in_Plugins erfahren Sie, wie Sie es richtig machen.

0
Mark Kaplun