| |||||||
| Registrieren | Hilfe | Benutzerliste | Suchen | Heutige Beiträge | Alle Foren als gelesen markieren | Threads ohne Antworten |
![]() |
| | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| PostRank: 1 ![]() Registriert seit: 12.05.2007 Ort: Hannover
Beiträge: 22
| Action Hooks bzw. Filter und Funktion gesucht Hallo, ich möchte ein Plugin schreiben, dass auf einem zweiten Plugin aufbaut. Das zweite Plugin wird über Tags im Content angesteuert und zur Laufzeit über ob_start() getriggert. D.h., die Tags bleiben immer unverändert im Content erhalten. Mein Plugin soll nun auch über Tags gesteuert werden. Wenn nun der Post gespeichert/veröffentlicht wird, sollen meine Tags durch die Tags zum Aufruf des anderen Plugins im Content ersetzt werden. Ich dachte da an den save_post action hook. Problem: Wie benutze ich den, wie schreibe ich den geänderten Content zurück in die Database und wie verhindere ich über dieses "updaten", dass save_post erneut getriggert wird und ein Loop entsteht? Habe auch schon im englischen Original-Forum geposted... wen es interessiert: WordPress › Support » How Can One Parse The Post Contents For A Tag? Würde mich über Antworten sehr freuen. PS: Das RegEx-Problem im obigen Post ist ein ganz anderes. Dazu habe ich auch schon wo anders Hilfe gesucht: HowTo Replace A Pseudo-Tag With Text
__________________ Marco Luthe Online! - http://www.saphod.net |
| | |
| | #3 (permalink) | |
| PostRank: 1 ![]() Registriert seit: 12.05.2007 Ort: Hannover
Beiträge: 22
| Zitat:
Also, ich tippe irgendwo in meinen Post ein bestimmtes Tag ein, wie z.B. "[embed_viewat height=100 width=300 id=1234]". Das soll ein Flash Panorama Image einbetten. Dann schreibe ich vielleicht noch was dazu, wie toll das Bild ist. Zum Schluss klicke ich entweder auf "Save and continue editing" oder auf "Publish". Hier soll das Plugin einschreiten: noch bevor der Content in die Datenbank geschrieben wird, soll das Plugin den oben genannten Befehl "[...]" durch einen anderen (Aufruf des anderen Plugins, was dann später mit Filter greift) ersetzen und dann erst den Content in der Datenbank speichern. Eine Fehlerbehandlung wäre auch wichtig, soll heißen: wenn mein Plugin nicht richtig aufgerufen wurde, dann bitte eine Fehlermeldung ausgeben und wieder unverändert zurück zum Editieren des Posts... Jetzt verständlicher? Danke für die Hilfe!
__________________ Marco Luthe Online! - http://www.saphod.net | |
| | |
| | #4 (permalink) |
| PostRank: 7 ![]() Registriert seit: 31.03.2006
Beiträge: 795
| Yupp, das war selbst für mich verständlich. Ich habe vor einiger Zeit ein ähnliches Plugin erstellt, das sieht wie folgt aus: PHP-Code: Ansonsten schau Dir doch mal den Code des anderen Plugins an. Vielleicht hilft Dir das auch weiter. VG Elke |
| | |
| | #5 (permalink) |
| WPD-Moderator ![]() Registriert seit: 31.05.2005 Ort: Gera
Beiträge: 1.835
| Seit WP 2.5 ist die Shortcode API für dich vielleicht interessant: Shortcode API « WordPress Codex Allerdings wird der Tag in die DB geschrieben, und erst beim Output entsprechend umgewandelt. Was ich übrigens für sehr viel handlicher halte als den geeparsten Code in die DB zu schreiben.
__________________ Erweiterungen |
| | |
| | #6 (permalink) |
| PostRank: 1 ![]() Registriert seit: 12.05.2007 Ort: Hannover
Beiträge: 22
| @Elke: Was genau macht Dein Plugin eigentlich? Aber immerhin weiß ich jetzt, dass ich mit $_POST('post_content') an den Inhalt rankomme. Den könnte ich ja dann ändern. Muss ich dann nur noch in etwa sowas ans Ende schreiben: PHP-Code: @Alphawolf: Wäre mir auch lieber, dass zur Laufzeit zu ersetzen, aber ich weiß nicht, wann und wie ich da ansetzen soll, weil mein Plugin ja einen Code ausgibt, der von dem anderen Plugin wieder geparst wird, also muss ich das vorher umwandeln... Das KIMILI plugin benutzt ob_start(). Ich hab keine Ahnung... Ich könnte allerdings die Funktion des Plugins selber übernehmen. Es macht im einfachsten Falle ja nichts anderes, als ein JavaScript zu laden und dann eine Klasse zu instanzieren. Bekomme ich irgendwie innerhalb meines Plugins raus, ob das andere Plugin vorhanden ist und ob es evtl. bereits das SWFObject (JavaScript) in den Header lädt? Ich muss es ja nicht unnötig zweimal laden...
__________________ Marco Luthe Online! - http://www.saphod.net |
| | |
| | #7 (permalink) | |
| WPD-Moderator ![]() Registriert seit: 31.05.2005 Ort: Gera
Beiträge: 1.835
| Zitat:
PHP-Code: PHP-Code:
__________________ Erweiterungen | |
| | |
| | #8 (permalink) | |
| PostRank: 1 ![]() Registriert seit: 12.05.2007 Ort: Hannover
Beiträge: 22
| Zitat:
Ich habe gerade etwas anderes wiedergefunden, was mir evtl. das Laden des Scripts erspart und trotzdem XHTML-konform ist: How to correctly insert a Flash into XHTML » La Trine Allerdings wäre das Javascript bestimmt die bessere Wahl.
__________________ Marco Luthe Online! - http://www.saphod.net | |
| | |
| | #9 (permalink) |
| PostRank: 7 ![]() Registriert seit: 31.03.2006
Beiträge: 795
| Mein Plugin hat (vor WP 2.5) die Leerzeilen, die beim Speichern "gelöscht" wurden, wieder "eingefügt". Wenn Du den Tausch erst beim Anzeigen des Textes durchführen willst, dann kannst Du mal Folgendes versuchen: PHP-Code: |
| | |
| | #10 (permalink) |
| PostRank: 1 ![]() Registriert seit: 12.05.2007 Ort: Hannover
Beiträge: 22
| Jau, daran hatte ich auch schon gedacht. Vielleicht ist es wirklich einfacher, das JavaScript selber einzubetten, als auf zwei Plugins hintereinander aufzubauen...
__________________ Marco Luthe Online! - http://www.saphod.net |
| | |
![]() |
| Themen-Optionen | |
| Ansicht | |
| |