Скрытие ссылки «Добавить новую» на странице пользовательского типа сообщения: хитрые решения для поддержания порядка

При работе с пользовательскими типами записей (CPT) в WordPress часто возникают ситуации, когда вы хотите скрыть ссылку «Добавить новую» на странице CPT. Это может быть полезно, если вы хотите ограничить возможность создания новых сообщений этого типа или просто сохранить интерфейс чистым и свободным от помех. В этой статье мы рассмотрим несколько способов достижения этой цели, используя разговорный язык и приведя примеры кода.

Метод 1: Магия CSS
Один из самых простых способов скрыть ссылку «Добавить новый» — использовать CSS. Вы можете настроить таргетинг на конкретный элемент ссылки и применить стиль, который сделает его невидимым, например:

#menu-posts-your_cpt_name .wp-submenu li:nth-child(2) {
    display: none;
}

Метод 2: обман JavaScript
Если вы предпочитаете более динамичный подход, вы можете использовать JavaScript, чтобы скрыть ссылку «Добавить новую». Нацелившись на элемент ссылки и изменив его свойство видимости, вы можете добиться желаемого эффекта. Вот пример использования jQuery:

jQuery(document).ready(function($) {
    $('#menu-posts-your_cpt_name .wp-submenu li:nth-child(2)').hide();
});

Метод 3: собственный плагин
Если вам нужно более надежное и многократно используемое решение, вы можете создать собственный плагин. Начните с создания нового файла, скажем, hide-add-new-link.php, и поместите его в каталог wp-content/plugins/. Затем добавьте в файл следующий код:

<?php
/*
Plugin Name: Hide Add New Link
Description: Hides the "Add New" link on the Custom Post Type page.
*/
function hide_add_new_link() {
    global $submenu;
    unset($submenu['edit.php?post_type=your_cpt_name'][10]);
}
add_action('admin_menu', 'hide_add_new_link');

Метод 4: ограничения на основе ролей
Если вы хотите ограничить ссылку «Добавить новую» на основе ролей пользователей, вы можете использовать встроенные возможности и систему ролей WordPress. Изменяя возможности, назначенные конкретным ролям, вы можете контролировать, кто может создавать новые сообщения определенного CPT. Вот пример того, как можно удалить ссылку «Добавить нового» для роли «подписчик»:

function restrict_add_new_link() {
    $role = get_role('subscriber');
    $role->remove_cap('publish_your_cpt_name');
    $role->remove_cap('edit_your_cpt_name');
    $role->remove_cap('edit_your_cpt_names');
    $role->remove_cap('delete_your_cpt_names');
}
add_action('admin_init', 'restrict_add_new_link');

Скрытие ссылки «Добавить новую» на странице произвольного типа публикации может значительно улучшить взаимодействие с пользователем и сохранить понятный интерфейс. В этой статье мы рассмотрели несколько методов достижения этой цели, включая манипулирование CSS, JavaScript, создание собственного плагина и ограничения на основе ролей. Выберите метод, который лучше всего соответствует вашим потребностям, и внедрите его в свой проект WordPress, чтобы все было аккуратно и организовано.