Heim  >  Fragen und Antworten  >  Hauptteil

Erzwingen Sie, dass WordPress nur für bestimmte benutzerdefinierte Beitragstypen einen Beitrags-Slug aus dem Titel generiert

Ich habe den folgenden Code verwendet, um WordPress zu zwingen, den Beitrags-Slug aus dem Beitragstitel zu generieren, auch wenn der Benutzer einen anderen Slug definiert oder einen anderen Slug kopiert. Ich wollte aber, dass dies nur einen bestimmten Beitragstyp namens job_listing betrifft, was aber leider der Fall ist Alle Beitragstypen auf meiner Website.

function myplugin_update_slug( $data, $postarr ) {
if ( ! in_array( $data['post_status'], array( 'draft', 'pending', 'auto-draft' ) ) ) {
    $data['post_name'] = sanitize_title( $data['post_title'] );
}

return $data;
}

add_filter( 'wp_insert_post_data', 'myplugin_update_slug', 99, 2 );

So verwenden Sie den obigen Code, um nur auf einen bestimmten Beitragstyp mit dem Namen job_listing abzuzielen, ohne andere Beitragstypen zu beeinträchtigen

Kann mir jemand helfen, diesen Code an meine Bedürfnisse anzupassen?

Wir wären Ihnen für Ihre Hilfe dankbar.

P粉514458863P粉514458863225 Tage vor370

Antworte allen(1)Ich werde antworten

  • P粉985686557

    P粉9856865572024-04-01 17:10:50

    根据文档 $data 包含 post_type 所以你应该能够使用它:

    function myplugin_update_slug( $data, $postarr ) {
        if ( $data['post_type'] === 'job_listing' && ! in_array( $data['post_status'], array( 'draft', 'pending', 'auto-draft' ) ) ) {
            $data['post_name'] = sanitize_title( $data['post_title'] );
        }
    
        return $data;
    }
    
    add_filter( 'wp_insert_post_data', 'myplugin_update_slug', 99, 2 );

    Antwort
    0
  • StornierenAntwort