Erzwingen Sie, dass WordPress nur für bestimmte benutzerdefinierte Beitragstypen einen Beitrags-Slug aus dem Titel generiert
P粉514458863
P粉514458863 2024-03-31 18:58:26
0
1
393

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粉514458863
P粉514458863

Antworte allen(1)
P粉985686557

根据文档 $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 );
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage