Maison  >  Questions et réponses  >  le corps du texte

Forcer WordPress à générer un post slug à partir du titre uniquement sur des types de publication personnalisés spécifiques

J'ai utilisé le code ci-dessous pour forcer WordPress à générer le slug de publication à partir du titre de la publication même si l'utilisateur définit un slug différent ou copie un autre slug, mais je voulais que cela n'affecte qu'un type de publication spécifique appelé job_listing mais malheureusement c'est le cas. Tous les types de publications sur mon site Web.

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 );

Comment utiliser le code ci-dessus pour cibler uniquement un type de publication spécifique nommé job_listing sans affecter les autres types de publication

Quelqu'un peut-il m'aider à modifier ce code en fonction de mes besoins ?

Nous serions reconnaissants de votre aide.

P粉514458863P粉514458863225 Il y a quelques jours376

répondre à tous(1)je répondrai

  • P粉985686557

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

    D'après la documentation $data 包含 post_type Vous devriez donc pouvoir l'utiliser :

    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 );

    répondre
    0
  • Annulerrépondre