Intereting Posts

отключить постоянную ссылку на пользовательский тип сообщения

Я создал пользовательский тип сообщения, но я не хочу, чтобы он имел постоянную ссылку. По умолчанию после ввода заголовка сообщения создается ссылка perma. Я не создаю их.

Из моего чтения говорится, что пользовательский тип сообщения будет иметь постоянную ссылку, и нет возможности отключить его. Есть ли способ, которым я могу предотвратить вызов ajax, который получает ссылку 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; } 

Это приведет к удалению:

  • Постоянная ссылка
  • Посмотреть сообщение
  • Кнопка «Получить ссылку»

Если вы хотите удалить постоянную ссылку, замените строку, содержащую preg_replace на

 $out = preg_replace('~<span id="sample-permalink".*</span>~Ui', '', $in); 

ОБНОВИТЬ:

get_sample_permalink_html изменился в версии 4.4.

Вот обновленный и проверенный код:

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

Хотя принятый ответ, похоже, скрывает постоянную ссылку от показа, но все еще сгенерирован и доступен, вы можете отключить постоянную ссылку от показа и быть доступным, установив определенные параметры register_post_types .

Я достиг того, что мне нужно, только установив следующее, но в зависимости от вашего конкретного случая вы можете настроить некоторые другие параметры .

 'public' => false, 'show_ui' => true 

Подробнее: https://wordpress.stackexchange.com/a/108658/33056