Maison > Questions et réponses > le corps du texte
P粉6052337642023-07-28 00:14:02
Vous pouvez essayer ceci :
Dans la fonction mycustomname_link, nous avons ajouté une boucle pour parcourir le tableau $custom_post_types. Pour chaque type de publication personnalisé, il vérifie si le type de publication actuel correspond à un nom du tableau. S'il y a une correspondance, les règles de réécriture seront appliquées.
De même, dans la fonction mycustomname_rewrites_init, nous avons ajouté une boucle pour enregistrer les règles de réécriture pour tous les types de publications personnalisées. Chaque type de publication personnalisé aura ses propres règles de réécriture.
Avec cette modification, les règles de réécriture seront appliquées à tous les types de publications personnalisés spécifiés dans le tableau $custom_post_types sans s'arrêter à la première itération. Assurez-vous de mettre à jour le tableau $custom_post_types avec les noms de tous les types de publication personnalisés que vous souhaitez inclure dans la règle de réécriture.
function mycustomname_link($post_link, $post = 0) { $custom_post_types = array('name_of_my_post', 'another_post_type', 'yet_another_post_type'); // Add all your custom post type names here foreach ($custom_post_types as $post_type) { if ($post->post_type === $post_type) { return home_url('new' .'/'. 'posts'.'/'. $post->post_name .'/'. $post->ID . '/'); } } return $post_link; } add_filter('post_type_link', 'mycustomname_link', 10, 2); function mycustomname_rewrites_init(){ $custom_post_types = array('name_of_my_post', 'another_post_type', 'yet_another_post_type'); // Add all your custom post type names here foreach ($custom_post_types as $post_type) { add_rewrite_rule('new/posts/([^/]+)/([0-9]+)?$', 'index.php?post_type=' . $post_type . '&p=$matches[1]&p=$matches[2]', 'top'); } flush_rewrite_rules(); } add_action('init', 'mycustomname_rewrites_init');