Erzeugung von post_name

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Schau mal unter wp_includes/functions-post.php....

    Da findest Du u.a.

    Code
    if ( empty($post_name) ) {
                    if ( 'draft' != $post_status )
                            $post_name = sanitize_title($post_title);
            } else {
                    $post_name = sanitize_title($post_name);

    Wenn Du also selbst keinen Post-Namen (im deutschen Wordpress im Feld "Titelform") beim Posten vorgibst, wird der Titel des Posts verwendet, bereinigt um bestimmte Sonderzeichen.

    Dazu kannst Du Dir ja die Funktion sanitize_title mal näher ansehen.

    ciao, Mario

  • hi,

    die funktion habe ich mir angesehen, aber dort stehen nur ein paar zeilen drin mit anderen funktionen und irgendwie steig ich da nicht dahinter wo nun genau der prozess des umwandels passiert.
    eigentlich wollte ich mir nur mal ansehen wie das hier gemacht ist, da ja dieser name in der url verwendet wird, aber es wird wol so sein, das alle sonderzeichen und leerzeichen einfach nur ersetzt werden

  • Naja, so kompliziert ist's wirklich nicht....

    Also, in der Funktion "sanitize_title" werden ja zwei Funktionen aufgerufen:

    1. strip_tags; das ist eine PHP-Funktion, die aus dem übergebenen Titel die PHP- und HTML-Tags entfernt.
    2. apply_filters; Hier wird über den WP-Filtermechanismus letztendlich (um es kurz zu machen ;-)), die Funktion "sanitize_title_with_dashes" (zu finden in der Datei "wp-includes/functions-formatting.php") aufgerufen.

    In der o.g. Funktion finden dann die eigentlichen Ersetzungen statt...

    ciao, Mario

  • danke. ist schon so wie ich es mir gedacht habe .-)
    aber über die funktion apply_filters zu der letztgenannten zu kommen, ist für mich aus dem quelltext nicht grad ersichtlich

  • Ich füge aus einer anderen Anwendung alle Daten per SQL automatisch in wp_posts und wp_comments ein. Nun muß ich dafür (bisher) immer erst noch ins Backend von WP und die Kategorie auswählen und abspeichern, bevor die Kommentare im FE angezeigt werden. Jetzt habe ich in der Datenbank gesehen, dass durch die Änderung im BE das post_name Feld verändert wird. Vor der Änderung steht dort das von mir eingefügte ('kategorie1') und danach steht da: kategorie1-3. Das hab ich nun mit mehreren Einträgen gemacht. Es handelt sich um eine fortlaufende Nummer. Meine Frage ist jetzt: wie (welche/s Argument/Variable erstellt diese Nummer) und wo wird sie per SQL eingfügt (sprich wie sieht der SQL Befehl aus)?

    Diese fehlt mir sozusagen

  • Keine Ahnung wo das herkommt und was du vorhast, aber post_name muss eindeutig sein (wegen Permalinks) das macht WP für dich indem es -ID ranhängt. Vielleicht solltest du das beachten!?

  • ok, danke für den Hinweis. Aber ich habe schon rausgefunden, das auch der Titel angefügt werden kann. Jetzt habe ich den Titel auch manuell mitgesetzt, aber trotzdem muß ich im Backend die Kategorie nochmal auswählen und speichern.
    Ich werd mal weitermachen ...

  • Es ist wohl so, das in allen Tabellen die "post" enthalten die Artikel "mitgeführt" werden müssen, da werd ich mich dann jetzt mal ransetzten ...

    gReEtS

    [EDITH meint:]jau, hat funktioniert, jetzt wird die Kategorie automatisch eingefügt. Jetzt brauche ich es im BE nicht mehr manuell bearbeiten![/EDITH]

    Einmal editiert, zuletzt von deHans (21. September 2007 um 12:15)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!