URLs als Parameterwerte übegeben
Text sollte noch folgen!
Übersicht » WP Rewrite API:
- URL Rewriting mit WordPress (eine kleine Einführung)
- QueryStrings und Parameter (übergeben und umschreiben)
Text
<?php /*---------------------------------------------------------------------------------- Plugin Name: Linkausgabe auf Sonderseite Description: Einfuegen in Sonderseite mit dem Short-Tag [fuer_ausgabe_von_links] Author: Horst Müller - Stendal Version: Beta 1.02 ----------------------------------------------------------------------------------- */ add_action("init", "schreibe_eigene_rewrite_regeln"); add_filter("query_vars", "parameter_fuer_die_uebergabe_von_url"); add_shortcode("fuer_ausgabe_von_links", "uebergabe_von_urls_als_parameter"); function parameter_fuer_die_uebergabe_von_url($neue_querys) { $neue_querys[] = "zielhost"; $neue_querys[] = "zielpfad"; $neue_querys[] = "zielurl"; return $neue_querys; } function uebergabe_von_urls_als_parameter($atts) { global $wp_query; /* -- Die zu verlinkenden Web-Adressen in ein Array aufnehmen ----------------*/ $webadressen = array ( "www.example.com/evergreens-aus-den-50er-jahren.html", "www.example.com/evergreens-aus-den-60er-jahren.html", "www.example.com/", "www.example.com" ); /* -- Die uebergebenen Werte pruefen und einen Link zusammen setzen ----------*/ function pruefe_und_bilde_Links($data) { $data = preg_replace("/[^a-zA-Z0-9.\/_-]/", "", $data); if (preg_match("/[\/]{1}(?P<link>[a-zA-Z0-9_-]+)\.html/", $data, $text)) { $text = preg_replace("/[^a-zA-Z0-9]/", " ", $text["link"]); $text = strtoupper($text); } else { $text = $data; } $data = "<a href=\"http://". esc_attr($data)."\">". esc_attr($text)."</a>"; return $data; } if (isset($wp_query->query_vars["zielhost"])) { $zielhost = $wp_query->query_vars["zielhost"]; if (isset($wp_query->query_vars["zielpfad"])) { $zielpfad = $wp_query->query_vars["zielpfad"]; $zielurl = $zielhost."/".$zielpfad; } else { $zielurl = $zielhost; } if (in_array($zielurl, $webadressen)) { return pruefe_und_bilde_Links($zielurl); } } elseif (isset($wp_query->query_vars["zielurl"])) { $zielurl = $wp_query->query_vars["zielurl"]; if (in_array($zielurl, $webadressen)) { return pruefe_und_bilde_Links($zielurl); } } else { return "Es wurde nichts übergeben!\n"; } } /*---------------------------------------------------------------------------------- Zwei unterschiedliche Rewrite-Regeln definieren, je nachdem ob eine nur eine Domain oder eine Web-Adresse mit /Unterseite.html uebergeben wird. Der Ausdruck vom Suchmuster muss gegebenenfalls erweitert oder angepasst werden oder es muessen weitere Regeln definiert werden. ----------------------------------------------------------------------------------- */ function schreibe_eigene_rewrite_Regeln() { global $wp_rewrite; add_rewrite_rule( '^oldies/([a-zA-Z0-9._-]+?)/?$', 'index.php?name=oldies&zielhost=$matches[1]', 'top' ); add_rewrite_rule( '^oldies/([a-zA-Z0-9._-]+?)/([a-zA-Z0-9._-]*?)/?$', 'index.php?name=oldies&zielhost=$matches[1]&zielpfad=$matches[2]', 'top' ); /* -- flush_rules() mur fuer Tests und im Baustellenbetrieb verwenden --------*/ $wp_rewrite->flush_rules(); } /*---------------------------------------------------------------------------------- Nachfolgende Funktion nur fuer Tests und im Baustellenbetrieb verwenden, um alle Query Vars und alle Rewrite-Regeln anzuzeigen. ----------------------------------------------------------------------------------- */ add_action("wp_footer", "zeige_alle_querys_an"); function zeige_alle_querys_an() { global $wp_query; global $wp_rewrite; echo "<pre>\n"; print_r($wp_query->query_vars); echo "<hr />\n"; print_r($wp_rewrite->rules); echo "</pre>\n"; } ?>