возможно заказать разработку или сопровождение, услуги вашего сайта/блога


обновлено: 2024-02-13 в теме: Сниппеты, хаки, функции
Запросто с WordPress создание и продвижение сайтов ATs media

Добавим в текстовый редактор пояснительные сообщения для авторов – управление из админки

На днях на одном из моих подопечных сайтов, который администрирую, реализовал одну в общем-то полезную штуку, о которой меня просили админы…

Дело в следующем: прежде всего доложу, что описанная в статье, так сказать – фичя, возможно, потребуется тем владельцам сайтов, у которых на сайте трудятся авторы. Это замечательно! Однако, не все эти авторы так запросто владеют текстовым редактором – попросту совершают массу ошибок, на исправления которых уходит масса времени. Так вот, чтобы сэкономить уйму полезного времени, как раз и нацелена задача сей статьи.

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

Что жж, добавим в текстовый редактор раздел для пояснительных сообщений администрации:


 

 

 

обогатим текстовый редактор пояснительным разделом для авторов

 

 

 

На скриншоте ниже видно, где примерно будет располагаться сообщение: кстати сказать, подобные, скажем так, памятки для авторов, возможно поместить где угодно, в смысле перед каждым разделом управления текстовым редактором: было бы желание!

 

 

 

памятки в текстовый редактор

 

 

 

Перво-наперво советую создать где-нить в корне шаблона папку my-functionss и в ней файл, ну, скажем, с именем: edit-post-func.php

 

 

 

Как организовать файл функций, или перенести некоторые важные наработки для сайта в плагин (что весьма целесообразнее!!), читайте в этом полезном ПОСТЕ

 

 

 

Не забудьте добавить в functions.php для определения папки и созданного файла такую строку:

 

 

include_once "my-functionss/edit-post-func.php"; // подсказки в текстовом редакторе

 

 

 

В созданный файл поместим такой код, который призван внедрить в текстовый редактор наше сообщение: то есть используем хук edit_form_after_title – если повнимательнее присмотреться к хуку, то по строке достаточно просто понять, где выведется сообщение – … after_title после тайтла, т.е. после заглавия…

 

Хуков для подобных задач очень много, о них ниже по тексту…

 

 

 

 

код для вывода в текстовом редакторе сообщения авторам, редакторам…

 

 

 

<?php
// сообщение будет помещено под заглавием статьи
add_action( 'edit_form_after_title', 'callback_ats_edit_form_after_title' );
function callback_ats_edit_form_after_title( $post ) {
if (current_user_can('author') or (current_user_can('editor') or (current_user_can('administrator')))) {
// чтобы видел свои сообщения АДМИН - or (current_user_can('administrator')) = или редактор: editor - автор: author
$als_options = get_option('ats_edit_options');
echo "<div style='margin-top: 10px;padding: 15px;color: #fff;background: #3ab902;clear: both;'>";
echo $als_options['atsy_text_edit'];
echo "</div>" ;
}
}

 

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

 

 

 

echo "<div style='margin-top: 7px;padding: 12px;color: #fff;background: #9876aa;clear: both;'>Это моё сообщение <b>edit_form_after_title</b></div>";  // пояснения

 

 

 

Callback – англ. call – вызов, англ. back – обратный – попросту – функция обратного вызова (программирование) Передача исполняемого кода в качестве одного из параметров другого кода: то бишь новый кастомный параметр возможно прицепить к ХУКУ (получится так называемый ХАК))

 

…но это так, к слову – функцию можете называть по своему желанию…

 

 

 

Как вариант, можно сделать вывод сообщения только для админа и авторов – для админа, это для того чтоб контролировать отображение сообщений…

Также возможно помимо прочего сообщения авторам, добавить сообщение только для редакторов… но для этих задач следует немножечко подредактировать данный в статье код.

 

…например, как-нить так добавить условия:

 

 

if (current_user_can('author') or (current_user_can('editor') or (current_user_can('administrator')))) { // administrator для показа и админу, для редактора editor, для авторов author

 

 

 

 

код для создания страничек настроек в админке – для организации сообщений авторам

 

 

 

 

Теперь добавим ещё один достаточно длинный, но очень простенький код в созданный файл. Это чудо добавит настройки в админпанель.

 

То есть прямо из админки появится возможность набирать сообщение авторам.

 

Кстати сказать: вывод сообщений возможно настроить по ролям пользователей (в коде даны пояснения) – можно, например, сделать вывод только для авторов (и админа) – редакторы, думается, более продвинутые (об этом говорил чуть выше)…

 

 

 

открыть код

<?php // стартовый php стереть

/**
* Function that adds settings page in the menu
*/
$atss_edit_page = 'edit-ats.php';
// it's part of the URL of the page

add_action('admin_menu', 'ats_edit_options');
function ats_edit_options() {
global $atss_edit_page;
add_options_page( 'Подсказки автору', 'Подсказки автору', 'manage_options', $atss_edit_page, 'edit_option_page'); // в "Пользователях" add_users_page настройки: add_options_page
}
/**
* This return function (Callback)
*/
function edit_option_page(){
global $atss_edit_page;
?><div class="wrap">
<h2>Параметры подсказок авторам по ролям:</h2>
<form method="post" enctype="multipart/form-data" action="options.php">
<?php
settings_fields('ats_edit_options');
do_settings_sections($atss_edit_page);
?>
<p class="submit">
<input type="submit" class="button-primary" value="<?php _e('Save Changes') ?>" />
</p>
</form>
</div>
<?php
}
/************************************************* */
// Create textarea
add_action( 'admin_init', 'ats_edit_settings_textr' );
function ats_edit_settings_textr() {

global $atss_edit_page;

register_setting( 'ats_edit_options', 'ats_edit_options', 'atses_validate_settings' ); // added:
// Added section and
add_settings_section( 'atss_section_edit', '<br />Здравствуйте Админ, редактор..! ...поместите в поле ниже своё сообщение авторам сайта:', '', $atss_edit_page );

$atss_edit_field_params = array(
'type' => 'textarea',
'id' => 'atsy_text_edit',
'desc' => '<br />...если ничего нихотите подсказать автору <span style="font-weight: 700;color: #038900;font-style: italic;">оставьте поле пустым</span>'
);
add_settings_field( 'atsy_texter_field_none', '<br /><br /><br /><br /><br />Введите текст, HTML подсказок:', 'atss_option_display_settings_edit', $atss_edit_page, 'atss_section_edit', $atss_edit_field_params );
}
// textarea function
function atss_option_display_settings_edit($args) {
extract( $args );
$option_name = 'ats_edit_options'; // added:
$o = get_option( $option_name );
switch ( $type ) {
case 'textarea':
$o[$id] = esc_attr( stripslashes($o[$id]) );
$current_user = wp_get_current_user();
echo '' . $current_user->display_name . '&nbsp;&mdash;&nbsp;';
echo 'Ваше сообщение авторам сайтов, например: <br /><span style="font-weight: 700;color: #038900;font-style: italic;"><b>КАКОВ макимальный размер загружаемых картинок, или какое число фотографий возможно использовать в статье и т.п.<br />также возможно добавлять html ссылки на более подробные статьи, либо какие-то административные новости, видеоролики и пр. и пр.</b></span>';
$als_options = get_option('ats_edit_options'); // added: double styles
echo "<br />";
echo "<?php _e('Save Changes') ?>";
echo "<br /><br />";
echo "<textarea placeholder=' Ваше сообщение...' class='code large-text' cols='50' rows='2' type='text' id='$id' name='" . $option_name . "[$id]' >$o[$id]</textarea>";
echo ($desc != '') ? "<br /><br /><span class='description'>$desc</span>" : "";
} }
// fin news textarea function

 

 

 

 

Ну вот в принципе и всё! как только добавите сии коды, всё тут же организуется и для админа (на страничке управления)…

 

 

 

 

пояснительные сообщения для авторов сайта

 

 

 

Сами настройки страницы в административной панели “Настройки” / “Подсказки автору” выглядят так:

 

 

 

настройки сообщений авторам

 

 

 

 

…и для сообщений в текстовом редакторе… – вам останется только протестировать и подстроить опции под себя.

 

 

 

 

сообщения авторам в текстовом редакторе – заключение

 

 

 

 

Полезные данные кода:

 

 

В Базе Данных информация хранится в ats_edit_options в таблице wp_options

 

В сериализованном массиве: $als_options = get_option('ats_edit_options');

 

Значение поля textarea – для ввода информации – atsy_text_edit

 

 

 

 

Дополнительные хуки:

 

 

edit_form_top – отработает перед полем ввода заголовка записи

edit_form_before_permalink – отработает после ввода заголовка записи – перед ссылкой записи

edit_form_after_title – отработает после ввода заголовка записи и её постоянной ссылки

 

edit_form_after_editor – отработает после основного поля вывода визуального редактора

submitpage_box (для страниц) и submitpost_box (для произвольных типов записей) – отработает в сайдбаре (виз. редактора)перед выводом метабоксов…

edit_page_form (для страниц) и edit_form_advanced (для других типов записей) – отработает после всех имеющихся метабоксов…

dbx_post_sidebar – отработает после всего контента  – финальный хук для страницы…

 

 

 

 

Эти функциями определим место вывода страницы настроек в административной панели ДЛЯ главного админа сайта:

 

Стартовые функции add_submenu_page() являются add_dashboard_page() – под пунктом меню “Консоль”…

 

…и далее…

add_posts_page() – раздел “Записи”)-

add_media_page() – раздел “Медиафайлы”

add_links_page() – раздел “Ссылки”

add_pages_page() – раздел “Страницы”

add_comments_page() – раздел “Комментарии”

add_theme_page() – раздел “Внешний вид”

add_plugins_page() – раздел “Плагины”

add_users_page() – раздел “Пользователи”

add_management_page() – раздел “Инструменты” – и конечно же add_options_page() – раздел “Настройки”, которую я использовал в примере.

 

 

 


подписка feedburner Online консультация по настройкам и созданию сайтов на WordPress

 

 

 


...А мне остаётся только раскланяться... и пожелать полезной работы в сети

 

 


...город веб мастеров Михалика.ru © - запросто с WordPress - ATs media squad

 

 

 



Михаил ATs - владелец блога запросто с Вордпресс - в сети нтернет давным-давно...

...веб разработчик студии ATs media: помогу в создании, раскрутке, развитии и целенаправленном сопровождении твоего ресурса в сети... - заказы, вопросы... разработка...





Нажатия на кнопочки определяют Ваше высокое гражданское сознание

Поделитесь соображениями: Ваши мысли очень важны!

Внимание! Обязательные поля помечены *

  отныне доступен плагин: ats privacy policy ©


  1. Спасибо, Михаил! попробую реализовать.
    А если не получится сделать (а это вероятнее всего)), то обращусь к вам – это возможно по такой мелочи?

    Ответить - Варвара