Nen wunderschönen Guten Tag alle miteinander. :smile:
Ich stehe vor einem Problem und hoffe hier kann mir geholfen werden. :confused:
Ich muss einen Plugin für Wordpress schreiben, der die Permalinkstruktur eines Post per Checkbox ändert. z.B.
Wenn bei der Erstellung oder Änderung eines Post eine Checkbox aktiviert ist, dann lautet die Permalinkstruktur
"/aktuell/%post_id%-%postname%/"
wenn es nicht aktiviert ist, dann
"/news/%post_id%-%postname%/"
die Standardstruktur, die in meiner Wordpress-instanz eingestellt ist, ist die mit "news" als Slug.
Mein Ansatz ist, bei der Aktivierung des Plugins wird eine Tabelle in der Datenbank erstellt und mit admin_print_scripts-post-new.php bzw. admin_print_scripts-post.php action-hooks die Checkboxen eingefügt. Per Ajax wird bei der Aktivierung der Checkbox in die zuvor erstellte Tabelle die ID des Posts und der bool-wert dazu gespeichert. Nun versuche ich mit dem pre_post_lisk - hook die Permalinkstruktur zu ändern:
// im Konstruktor des Plugins wird die "my_permalink"-methode aufgerufen
add_filter('pre_post_link', array(&$this,'my_permalink'), 10, 3);
//...
// ändert die Permalinkstruktrur
function my_permalink($permalink, $post, $leavename) {
global $wpdb;
$table = $wpdb->prefix."my_permalinks";
$myPermalink = $wpdb->get_var("SELECT my_permalink FROM $table WHERE post_id = '".$post->ID."'");
if($myPermalink) {
$permalink = "/aktuell/%post_id%-%postname%/";
} else {
$permalink = "/news/%post_id%-%postname%/";
}
return $permalink;
}
Alles anzeigen
es geht auch, die URL wird so geändert wie ich es mir vorgestellt habe, nur die Posts sind nicht erreichbar... :sad:
z.B. der Permalink für ein Post lautet:
http://testserver.de/news/37326-testartikel/
durch die Aktivierung der Checkbox wird die URL in
http://testserver.de/aktuell/37326-testartikel/ geändert und es erscheint die 404 Fehlermeldung. Wenn ich manuell statt "aktuell" wieder "news" einfüge, ist der Post erreichbar.
Hat jemand eine Idee
Bedanke mich vielmals im voraus. ;)
Gruß
Alex