Erstellen Sie Slugs programmgesteuert

Ich aktualisiere programmatische Posts in einer WP 3.01-Installation mithilfe von benutzerdefinierten Tools. Manchmal ändere ich programmgesteuert post_status von ENTWURF zu VERÖFFENTLICHEN mit benutzerdefinierten SELECT Abfragen, jedoch scheint dies Postpermalinks zu beschädigen.

In einem DRAFT-Zustand haben Beiträge die folgende Linkstruktur

 http://myblog.com/?p=73006 

Könnte es einen “Trick” geben, um eine Änderung in der Linkstruktur zu erzwingen und den richtigen Permalink zu generieren?

Solutions Collecting From Web of "Erstellen Sie Slugs programmgesteuert"

Sie müssen den Slug programmgesteuert so einstellen, wie Sie es tun. Ein SQL-Trigger könnte den Trick machen. Vergessen Sie nicht, doppelte Slugs zu beachten, während Sie es schreiben.

Andernfalls schreibe ein PHP-Skript, das die WP-API aufruft, anstatt mit der database zu veröffentlichen.

Erstellen Sie eine .php Datei im Stammverzeichnis Ihres WordPress-Verzeichnisses und schreiben Sie:

 < ?php require( 'wp-load.php' ); $urunler = array( 'order' => 'ASC', 'post_type' => 'urun', 'post_status' => null, 'numberposts' => -1, ); $tumurunler = get_posts($urunler); if ($tumurunler) { foreach ($tumurunler as $urun) { $urun->post_name = ''; wp_update_post( $urun ); // Update the post into the database } } 

Also lädt dieser Code alle Posts von post_type=='urun' und setzt das Feld $urun->post_name auf leer (dieses Feld definiert den Post Permalink Slug), dann füllt WordPress automatisch einen Wert für Sie, wenn Sie wp_update_post() aufrufen. Wenn Sie post_type' in 'post' oder post_type' in 'page' ändern möchten, ändern post_type' einfach diese Zeile:

 'post_type' => 'urun',