Heim > Fragen und Antworten > Hauptteil
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粉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 );