Tragen sie hier ihren Suchbegriff ein.

Prototype.js (AJAX) & Wordpress

servus,

ich spiele gerade ein wenig mit der prototype.js, die basis aller ajax Anwendungen und Libaries, rum und habe probiert den content meines Blogs Asynchron laden zu lassen. funktioniert soweit auch gut, leider gibt es gewisse Nachteile, die mich jetzt von so einer Lösung absehen lassen:

Ich werde aber die Fotoleiste rechts probieren mit der prototype.js und mit script.acul.us besser zu platzierne zu programmieren. Eine Demo der AJAX seite köntn ihr unter:  blog.johnobo.de/?ajaxresponse=true&sec=template erreichen.

Hier der SourceCode falls sich jemand verwriklichen möchte:

<script src="http://blog.johnobo.de/wp-content/themes/hannes_new/js/lib/prototype.js" type="text/javascript"></script> <script type="text/javascript"><!–
function updateDiv(ajaxTarget) {
   new Ajax.Request(ajaxTarget,
     {
       method:’get’,
       onLoading: function(){
         $(’content’).update(’lade: ‘ + ajaxTarget);
         //$(’content’).innerHTML;
       },
       onSuccess: function(transport){
         var response = transport.responseText || "File empfangen, aber keine Daten erhalten";
         $(’content’).update(response);
         //$(’content’).innerHTML
       },
       onFailure: function(){ alert(’konnte File nicht laden’) }
     });
  }
// –>
</script>

und im html wird es so benutzt:

<div id="content"><a href="javascript:updateDiv(’url’)">
updateDiv überschreibt mit den gesamten DIV der die ID content hat mit der übergebenen URL, die url muss auf dem gleichen Server liegen.
</a></div>

Was im Wordpress ein wenig Tricky war, ist die Tatsache, dass man eine neue index.php für sein Template anlegen muss in der eine Weiche programmiert ist. Diese File wird von der updateDiv Funktion angesprochen und soll ja nur das wieder geben was gebraucht wird. In meinem Fall habe ich mit PHP mit einer GET variable gearbeitet, und das Skript sendet entweder das rohe Template (?sec=template) oder nur den Inhalt meiner Seite (?sec=content). Ihr könnt das ja mal ausprobieren: http://blog.johnobo.de/?ajaxresponse=true&sec=content, hierwird jetzt nur der Inhalt aufgelistet.

Man muss auf die gleiche Index.php File vom Wordpress zu greifen um die Wordpress-Funktionen nutzen zu können, um den Inhalt auflisten zu lassen brauchte ich schließlich den LOOP der die Posts generiert.

Ein weiteres Probem, auf das ich stieß, war die Tatsache das ein paar Anti-Spam Plugins  nicht mit dem Asynchronen nachladen klar kamen, auf dersuche nach einer Alternative habe ich ein tolles AntiSpam Plugin gefunden für WP: Yawasp - ziemlich genial

Links:

Kategorien:AJAX, Allgemein, PHP, Programmieren, Tutorial



Keine Kommentare


kommentieren