Dienstag, 2. August 2011

Wordpress - post_title automatisch aus Custom Fields generieren lassen

Nutzt man zum Beispiel einen Wordpress Blog um zum Beispiel Produkte oder Ähnliches, was in großer Anzahl vorhanden sein soll und nutzt man den Artikel mit schmucken Custom Fields um den Artikel so zu pimpen, dann kann es manchmal sein, dass es besser wäre den Artikel Titel durch die Custom Fields generieren zu lassen um eine bestimmte Einheitlichkeit zu besitzen.

Bsp:
wordpress.de/land/XY_1-spracheXY_1-nrXY_1
wordpress.de/land/XY_2-spracheXY_2-nrXY_2
wordpress.de/land/XY_3-spracheXY_3-nrXY_3

Das händlisch und tausend oder Mehre Male zu machen ist fast absurd. Also habe ich mir mal einen Ansatz ausgedacht. Der ist bestimmt ausbaufähig, was meint Ihr?

In der Datei post.php findet Ihr die Funktionen die sich Rund um den Post beschäftigen. Bei Zeile 2300 (WP Version 3.0.5) findet ihr in dieser Datei die Update Funktion. Sucht einfach nach: if .... ($update) { ...

In der Schleife füght ihr in den TRUE Bereich (erste Bereich hinter der IF Bedingung) folgendes ein: $data['post-title_]=$meta_value;

Vor if ($update) lasst ihr euch den Meta Value ermitteln über:

$meta_values_land = get_post_meta($post_ID, land, true);
$meta_value=$meta_values_land;

Jetzt könnt Ihr Euer Post erstellen und den Titel leer lassen. Dann speichern oder auch publizieren klicken. Danach noch ein Mal publizieren drücken und dann seht ihr den Meta-Value Namen als Post_Title . Nachteil ist, dass er ganz viele Inherit Einträge in der SQL Datenbank hinterlässt. Ab und an mal damit säubern:
DELETE FROM wp_posts WHERE post_status='inherit'


Randbemerkung: Was bedeutet sanitize_title? Das findet man auch ungefähr dort. Hier wird der Title in einen Namen verändert, den man dann in rewrite Urls benutzen kann. Also aus: " Merkel ist blöd"  wird " merkel-ist-blod".

Keine Kommentare:

Kommentar veröffentlichen