Intereting Posts
Как создать шаблон wordpress без использования какой-либо страницы Комментарий комментария WordPress «перепутался, из-за плагина – DISQUS Перенаправление всех сообщений после изменения структуры URL с помощью htaccess Простой URL страницы переписывается с помощью add_rewrite_rule () Проблемы с перемещением моего сайта WordPress на другой домен / сервер Автоматически добавлять простые пользовательские кнопки для печати, Facebook share и Tweet в сообщениях Фильтровать мета запрос Показаны сообщения из 2 категорий только по категории.php get_users () ORDER BY Не работает Почему WP загружает так много файлов в начале исходного кода? Как его оптимизировать? Тип сообщения – Обычный пост – изображение Удалить изображение из сообщения также удаляет фото из медиа-библиотеки Добавление существующего доменного имени в WordPress.com письменные сообщения на индийском региональном языке (Пенджаби) Как написать налоговый запрос, который соответствует всем терминам в массиве?

Сделать родительскую категорию недоступной при наличии дочерних категорий

Я пытаюсь найти способ отключения выбора родительской категории в WordPress 3.5.1 (экран редактора сообщений) только в том случае, если эта родительская категория содержит дочерние категории.

Моя структура:

  • Категория 1 (нет детей, разрешить пользователям размещать сообщения, сохранять выбор)
  • Галереи (родительская категория с детьми, удалить вариант выбора, чтобы остановить публикацию пользователей)
    • Пользователь 1 (дочерняя категория, позволяет пользователю публиковать сообщения, сохранять выбор)

Решение jQuery для отключения раздела всех родительских категорий (независимо от наличия дочерних категорий или нет) можно найти здесь:

Сделать родительские категории недоступными

Solutions Collecting From Web of "Сделать родительскую категорию недоступной при наличии дочерних категорий"

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

add_action( 'admin_footer-post.php', 'wpse_98274_disable_top_categories_checkboxes' ); add_action( 'admin_footer-post-new.php', 'wpse_98274_disable_top_categories_checkboxes' ); /** * Disable parent checkboxes in Post Editor. */ function wpse_98274_disable_top_categories_checkboxes() { global $post_type; if ( 'post' != $post_type ) return; ?> <script type="text/javascript"> jQuery( "#category-all ul.children" ).each( function() { jQuery(this).closest( "ul" ).parent().children().children( "input" ).attr( 'disabled', 'disabled' ) }); </script> <?php } 

Однако, как только категории выведены из строя для этой ужасной «функции», которая перемещает их в начало поля, jQuery терпит неудачу. Я заимствовал этот код из плагина .

 add_filter( 'wp_terms_checklist_args', 'wpse_98274_checklist_args' ); /** * Remove horrid feature that places checked categories on top. */ function wpse_98274_checklist_args( $args ) { $args['checked_ontop'] = false; return $args; } 

Если вы хотите использовать это с пользовательскими сообщениями, замените там, где говорится о post в выражении if с помощью slug вашего типа сообщения.

С помощью пользовательских таксономий замените там, где указано #category-all с именем вашей таксономии (например, #taxonomyname-all ).

Скорее всего, ваша ситуация будет, если вы посмотрите на это.

Для нескольких таксономий / типов сообщений в одно и то же время: один простой вариант – дублировать весь код и в дополнение к приведенным выше изменениям создавать любое новое имя, где указано wpse_98274_disable_top_categories_checkboxes98274 просто ссылается на эту страницу (смотрите эти страницы URL) и не вызывает ничего особенного в WordPress. Или более элегантным является создание нескольких операторов if.