• Zur Hauptnavigation springen
  • Skip to main content
  • Zur Fußzeile springen

Gärtner Webentwicklung

Maßgeschneiderte Web-Lösungen für Ihre Bedürfnisse

  • Über mich
  • WordPress Mentoring
  • Ressourcen
    • Resource efficient websites
    • Empfohlene Plugins
    • Empfohlene Hilfsmittel
    • Empfohlene Hoster
    • Alternativen zu WordPress
  • Artikel
    • Technische Begriffe einfach erklärt
    • Code-Schnipsel
    • Tutorials

Virtuelle Seiten „on the fly“ anlegen

25. September 2019 von Sebastian Gärtner Kommentar verfassen

Manchmal ist es hilfreich auf URLs dynamisch antworten zu können. Eine statische Seite anzulegen fühlt sich aber nicht stimmig an, oder geht einfach nicht.

Für solche Fälle braucht es „virtuelle“ Seiten. Also Seiten im WordPress, die dadurch entstehen, dass sie aufgerufen werden.

Solche virtuelle Seiten verwende ich z. B. um auf die Return-URLs des PayPal-Buttons zu antworten.

Hier ein bisschen Code

<?php function gw_add_rewrite_rules_paypal_return_pages() { add_rewrite_rule( 'paypalsuccess/(\d+)/?$', 'index.php?paypal=success&paypal_content_id=$matches[1]', 'top' ); add_rewrite_rule( 'paypalcancel/(\d+)/?$', 'index.php?paypal=cancel&paypal_content_id=$matches[1]', 'top' ); } add_action( 'init', 'gw_add_rewrite_rules_paypal_return_pages' ); function gw_add_query_vars_paypal( $query_vars ) { $query_vars[] = 'paypal'; return $query_vars; } add_filter( 'query_vars', 'gw_add_query_vars_paypal' ); function gw_add_rewrite_tag_paypal() { add_rewrite_tag( '%paypal_content_id%', '([^&]+)' ); } add_action( 'init', 'gw_add_rewrite_tag_paypal', 10, 0 ); function gw_redirect_paypal_return_pages() { $paypal_result = get_query_var( 'paypal' ); $post_id = get_query_var( 'paypal_content_id' ); if ( 'success' === $paypal_result ) { global $current_user; include get_stylesheet_directory() . '/paypal-success.php'; exit(); } elseif ( 'cancel' === $paypal_result ) { include get_stylesheet_directory() . '/paypal-cancel.php'; exit(); } else { return; } }; add_action( 'template_redirect', 'gw_redirect_paypal_return_pages' );
Code-Sprache: PHP (php)

gw_add_rewrite_rules_paypal_return_pages legt neue Rewrite-Regeln an, damit kann die angegebenen URL aufgerufen werden und wird von WordPress verarbeitet

gw_add_query_vars_paypal macht den Parameter „paypal“ für WordPress bekannt um dann in gw_redirect_paypal_return_pages verwendet zu werden.

In gw_redirect_paypal_return_pages wird WordPress angewiesen statt das vorgesehene Template zu laden eine Seite aufzurufen und danach abzubrechen.

gw_add_rewrite_tag_paypal macht glaube ich tatsächlich nichts mehr. Eigentlich sollte die Funktion „paypal_content_id“ im Theme verfügbar machen, darauf kann ich aber garnicht zugreifen, weil meine PHP-Dateien nicht im WordPress-Loop sind.

Kategorie: Code-Schnipsel

Leser-Interaktionen

Schreibe einen Kommentar Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Vorheriger Beitrag: « PayPal Spenden Link
Nächster Beitrag: Facebook Messenger Chatbot anlegen »
  • Kontakt
  • Datenschutzerklärung