Как отключить записи и использовать только страницы

11 дек. 2011 г., 05:30:36
Просмотры: 40.8K
Голосов: 12

Я новичок в разработке тем WordPress и хочу создать веб-сайт, который содержит только статический контент. Имеет ли смысл отключить записи и использовать только статические страницы? Если да, то есть ли простой способ сделать это?

1
Комментарии

Если вы также хотите удалить ссылки на меню "Новая запись", ознакомьтесь с https://wordpress.stackexchange.com/questions/293148/how-do-i-remove-the-default-post-type-from-the-admin-toolbar

cweiske cweiske
23 июн. 2024 г. 18:17:41
Все ответы на вопрос 5
7
20

Вы можете просто скрыть меню записей, добавив следующий код в файл functions.php:

function remove_posts_menu() {
    remove_menu_page('edit.php');
}
add_action('admin_menu', 'remove_posts_menu');

WordPress не позволяет отключить сам тип записи с помощью функции unregister_post_type(). Условие находится здесь: https://github.com/WordPress/wordpress-develop/blob/6.0/src/wp-includes/post.php#L1754

// Не разрешать отмену регистрации встроенных типов записей.
    if ( $post_type_object->_builtin ) {
        return new WP_Error( 'invalid_post_type', __( 'Отмена регистрации встроенного типа записи не разрешена' ) );
    }
11 дек. 2011 г. 06:01:51
Комментарии

Этот метод сломает загрузчик Медиатеки, так как он также работает с "edit.php".

ben.kaminski ben.kaminski
11 апр. 2016 г. 15:53:34

@ben.kaminski Похоже, это больше не актуально, для тех, кто попал сюда спустя несколько лет :)

Nathan Hornby Nathan Hornby
3 февр. 2017 г. 14:31:07

Это решение чисто косметическое и не влияет на базу данных, поэтому я не считаю его хорошим решением

Marco Panichi Marco Panichi
26 авг. 2022 г. 08:12:30

@MarcoPanichi Это НЕВОЗМОЖНО сделать в базе данных. Пожалуйста, вместо этого покажите свой способ и добавьте свой ответ, а не понижайте репутацию других людей без причины. Я был бы признателен, если бы вы отозвали свой голос против, так как ваше обоснование не соответствует тому, как это работает в WordPress. Этот ответ помогает людям уже 11 лет.

Brian Fegter Brian Fegter
26 авг. 2022 г. 18:58:50

@BrianFegter ваш ответ не решает проблему, потому что вы не отключаете записи. Люди имеют право ставить минус ответу, если это мотивировано. Это просто минус, а не смертный приговор. Мне особенно не нравится, что вы не объясняете ситуацию; ваш ответ может ввести в заблуждение: "Вы можете просто скрыть" ≠ отключить записи. Я думаю, что мог бы убрать свой минус, если вы лучше объясните этот аспект. Может, это будет хорошим компромиссом?

Marco Panichi Marco Panichi
27 авг. 2022 г. 10:49:13

@MarcoPanichi Нет НИКАКОГО способа отключить записи через базу данных. Единственный способ в WordPress — это скрыть меню. Пожалуйста, ознакомьтесь с этой ссылкой: https://developer.wordpress.org/reference/functions/unregister_post_type/ Вы заметите на строке 1753, что WordPress не позволяет отключить записи.

Brian Fegter Brian Fegter
29 авг. 2022 г. 17:41:56

@MarcoPanichi Я обновил ответ с этим уточнением. Это единственный ответ на данный вопрос.

Brian Fegter Brian Fegter
30 авг. 2022 г. 00:05:33
Показать остальные 2 комментариев
0

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

Просто добавьте следующий код в ваш файл functions.php:

function remove_menus () {
    global $menu;
    $user = wp_get_current_user();
    if ($user->ID!=1) { // Если это не администратор,
        $restricted = array(__(__('Записи')));
        end ($menu);
        while (prev($menu)){
            $value = explode(' ',$menu[key($menu)][0]);
            if(in_array($value[0] != NULL?$value[0]:"" , $restricted)){unset($menu[key($menu)]);}
        }
    }
}
add_action('admin_menu', 'remove_menus');
11 дек. 2011 г. 10:13:39
3

Вы задумывались о том, чтобы просто переименовать "Записи" во что-то вроде "Новости"? Это позволит пользователю (вам или клиенту) по-прежнему публиковать новости, пресс-релизы, статьи и т.д., чтобы предотвратить застой контента на сайте.

Это довольно просто сделать. Просто добавьте этот код в файл функций.

function change_post_menu_label() {
    global $menu;
    global $submenu;

    $menu[5][0] = 'Новости';
    $submenu['edit.php'][5][0] = 'Новости';
    $submenu['edit.php'][10][0] = 'Добавить статью';
    $submenu['edit.php'][15][0] = 'Категории новостей'; // Изменяем название для категорий
    $submenu['edit.php'][16][0] = 'Метки статей'; // Изменяем название для меток
}

function change_post_object_label() {
    global $wp_post_types;

    $labels = &$wp_post_types['post']->labels;
    $labels->name = 'Новости';
    $labels->singular_name = 'Новость';
    $labels->add_new = 'Добавить статью';
    $labels->add_new_item = 'Добавить статью';
    $labels->edit_item = 'Редактировать статью';
    $labels->new_item = 'Новостная статья';
    $labels->view_item = 'Просмотреть статью';
    $labels->search_items = 'Искать новости';
    $labels->not_found = 'Статьи не найдены';
    $labels->not_found_in_trash = 'В корзине статьи не найдены';
}
add_action( 'init', 'change_post_object_label' );
add_action( 'admin_menu', 'change_post_menu_label' );

И теперь у вас могут быть новости, которые будут полезны всем. Надеюсь, это поможет!

1 мар. 2012 г. 20:23:12
Комментарии

упс.. спасибо ungestaltbar.. действия вроде как заставляют колеса крутиться

The Z Man The Z Man
2 мар. 2012 г. 04:36:15

Я не думаю, что 'добавить блог на сайт, потому что функционал существует' - это хороший ответ на данный вопрос.

Nathan Hornby Nathan Hornby
3 февр. 2017 г. 14:19:59

Я сделал это, но теперь как администратор я тоже не вижу черновики постов. Как сделать так, чтобы видел только я? @ungestaltbar

Doğukan Sahil Doğukan Sahil
30 сент. 2022 г. 02:23:12
0

Записи и страницы по сути одинаковы — они различаются только по определению использования (и некоторым мелким деталям). Примерно как "блог" и "веб-сайт". Страница фактически является "разновидностью" записи (с точки зрения WordPress).

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

Но чтобы понять, какой способ лучше, объясните подробнее, ПОЧЕМУ вам нужно их "отключать"?

Я рекомендую перед тем, как начать "отключать" что-либо, установить WordPress и немного поэкспериментировать — тогда вы поймёте гораздо лучше.

11 дек. 2011 г. 05:54:38
0

Имеет ли смысл отключать записи и использовать только статические страницы?

Нет. Если только вам не нужно небольшое количество страниц.

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

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

2 февр. 2014 г. 16:02:05