Intereting Posts
Пользовательские типы сообщений и пользовательские переменные – add_rewrite_tag () вопрос иерархическая справка wp_list_pages Удалить все ссылки на конкретный веб-сайт Как сделать пользовательские поля уважительными абзацами Разработка плагинов – получить URL-адрес администратора (включая случаи, когда wp-admin не используется) Целевая логика на основе имени виджета / боковой панели 4.2.2 застрял в цикле обновления db с помощью «Вызов неопределенного метода wpdb :: get_col_length ()» Buddypress – добавление полей профиля в группу> Каталог участников Как показать дочерний пост на родительском посту с эскизом и контентом в WordPress Отдельная страница WordPress Theme – использование шаблонов страниц Форматы сообщений «аудио» и «видео» отображаются только в index.php $ wpdb-> insert никак не работает Проверьте, зарегистрирован ли пользователь на моем сайте WordPress, который находится на другом сервере Custom post type permalink: используйте только% post_id% и удалите% postname% Карты Google Maps и Yandex не работают правильно

Есть ли способ скрыть страницу из панели управления (список всех страниц) или navbar из функции плагина?

Я пытаюсь включить шаблон из плагина, который требуется для отображения некоторых моих пользовательских данных. Я написал функцию для вставки страницы и включил шаблон. Он работает для меня, но как только я создал страницу, она автоматически отображается в списке меню навигации (в настоящее время используется тринадцатая тема).

Поэтому на самом деле я не хочу показывать свою пользовательскую страницу из NAVBAR (список меню), а также из списка всех панелей Dashboard (если возможно). Есть какой-то способ преодолеть эти ситуации?

Вот мой код:

function create_user_content_page() { $post_id = -1; // Setup custom vars $author_id = 1; $slug = 'user-data-content'; $title = 'Data Content'; // Check if page exists, if not create it if ( null == get_page_by_title( $title )) { $dataContent_page = array( 'comment_status' => 'closed', 'ping_status' => 'closed', 'post_author' => $author_id, 'post_name' => $slug, 'post_title' => $title, 'post_status' => 'private', 'post_type' => 'page' ); $post_id = wp_insert_post( $dataContent_page ); if ( !$post_id ) { wp_die( 'Error creating template page' ); } else { update_post_meta( $post_id, '_wp_page_template', 'content-template.php' ); } } // end check if } add_action( 'template_include', 'content_template' ); function content_template( $template ) { global $post; if ($post->post_type == 'user-data-content') { $template = dirname( __FILE__ ). '/content-template.php'; } return $template; } 

Solutions Collecting From Web of "Есть ли способ скрыть страницу из панели управления (список всех страниц) или navbar из функции плагина?"

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

Например (украденный форму другого ответа) :

 add_filter( 'template_include', 'portfolio_newpage_template', 99 ); function portfolio_newpage_template( $template ) { get_header(); include('/some/file/path/file.php'); get_footer(); die; } в add_filter( 'template_include', 'portfolio_newpage_template', 99 ); function portfolio_newpage_template( $template ) { get_header(); include('/some/file/path/file.php'); get_footer(); die; } 

Честно говоря, я думаю, что это все, что вам нужно.

Однако, если вам нужны части страницы для редактирования, вы можете зарегистрировать тип сообщения, чтобы он не отображался в меню, но все еще доступен, если вы знаете правильный URL. Эти два аргумента register_post_type сделают это:

 'show_ui' => true, 'show_in_menu' => false, 

Вам нужно будет создать какой-то интерфейс для сопоставления сообщений с вашими пользователями (я думаю) и для доступа к экранам редактирования.

Чтобы добавить к ответу @ s_ha_dum, ваша основная проблема заключается в том, что вы пытаетесь сгенерировать в коде презентации плагина, что должно быть оставлено для тем. любой метод, который вы применяете, всегда будет в опасности, что будет тема, которая ведет себя так, как вы не ожидаете, и ваш плагин выводит сломанную страницу.

Если вам нужно вывести только некоторый контент, то ваш плагин должен предоставить короткий код. и если вам действительно нужно иметь полный контроль над дизайном страницы, то, возможно, создание дочерней темы будет лучше, чем плагин.