Я пытаюсь создать плагин, который изменяет страницу «Добавить новое сообщение», чтобы в поле «Видимость» по умолчанию было указано «Частное»:
Status: Draft
Visibility: **Private**
Publish immediately
[Publish]
… в отличие от того, что обычно предполагает WordPress:
Status: Draft
Visibility: **Public**
Publish immediately
[Publish]
На данный момент я использую фильтр «wp_insert_post_data», который позволяет мне изменять любые сообщения со статусом post_status «авточерновик» на «частные». Хотя это работает, есть непреднамеренный побочный эффект: изменение post_status на «частный», похоже, автоматически публикует сообщение, изменяя кнопку в редакторе на «Обновить». Кроме того, если пользователь сохранит до указания заголовка, сообщение будет опубликовано с заголовком «Авточерновик».
Есть ли способ просто изменить видимость на частную по умолчанию, чтобы сообщение не публиковалось автоматически, и изменить кнопку на «Обновить»? В ванильном WordPress пользователи могут вручную изменить видимость на «Частная», а кнопка останется «Опубликовать»… Мне просто нужно добиться этого с помощью плагина. Я также хочу убедиться, что пользователь по-прежнему может выбрать «общедоступный», если захочет.
Спасибо!
поскольку вы разрабатываете плагин, я предполагаю, что вы не хотите трогать какие-либо файлы за пределами wp-content/plugins или../themes в этом отношении.
Однако, если это не так, следуйте инструкциям:
Перейдите в wp-admin/includes/meta-boxes.php и найдите:
Теперь измените его на очевидное:
Опять же, это влияет на файл meta-boxes.php, который находится за пределами папки плагинов. Тем не менее, я думаю, что подход, который вы должны использовать, заключается в создании нового мета-окна, добавлении вашей пользовательской настройки видимости (т.е. частной) и замещении последней настройки видимости WP по умолчанию.
Лучший,
Крис
Решения, которые требуют от вас изменения основных файлов, всегда будут сбрасываться при обновлении. Поэтому они действительно не являются решениями.
Согласен, но если я не ошибаюсь, я считаю, что часть, выделенная жирным шрифтом, достижима с помощью обычного плагина. Если это так, то это достойное решение, просто немного больше работы, чем то, что я хотел сделать.
Это разбивает черновики и автоматически публикует сообщения, когда вы нажимаете «Сохранить черновик». Любые другие решения?
Это правильно, но если вы хотите, чтобы запись могла быть помещена в корзину, вы должны сначала проверить, если ( ‘trash’ != $post[‘post_status’] ).
из плагина; использует действие «post_submitbox_misc_actions» и некоторый запрос, чтобы перехватить форму публикации пользователя: http://wordpress.org/extend/plugins/private-post-by-default/
Правильный способ автоматически пометить сообщение как личное — сделать это с помощью фильтра wp_insert_post_data. Это очень просто: