J'ai créé un type de message personnalisé, mais je ne veux pas qu'il ait un lien permanent. Par défaut, après avoir saisi le titre du post, il crée un lien permanent. Je ne les fais pas générer.
D'après mes lectures, il est dit que le type de message personnalisé aura un lien permanent et qu'il est impossible de le désactiver. Est-il possible d'empêcher l'appel ajax qui reçoit le lien perma?.
<?php
add_filter('get_sample_permalink_html', 'my_hide_permalinks');
function my_hide_permalinks($in){
global $post;
if($post->post_type == 'my_post_type')
$out = preg_replace('~<div id="edit-slug-box".*</div>~Ui', '', $in);
return $out;
}
Cela supprimera:
Si vous souhaitez supprimer uniquement le lien permanent, remplacez la ligne contenant preg_replace
par
$out = preg_replace('~<span id="sample-permalink".*</span>~Ui', '', $in);
get_sample_permalink_html
a changé dans la version 4.4.
Voici le code mis à jour et testé:
add_filter('get_sample_permalink_html', 'my_hide_permalinks', 10, 5);
function my_hide_permalinks($return, $post_id, $new_title, $new_slug, $post)
{
if($post->post_type == 'my_post_type') {
return '';
}
return $return;
}
Bien que la réponse acceptée semble cacher uniquement le lien permanent, mais qu'elle soit toujours générée et accessible, vous pouvez désactiver le lien permanent pour qu'il soit visible et accessible en définissant certains paramètres register_post_types
.
J'ai obtenu ce dont j'avais besoin en définissant uniquement les éléments suivants, mais en fonction de votre cas particulier, vous souhaiterez peut-être ajuster certains des paramètres autres .
'public' => false,
'show_ui' => true