Ваш путь: Главная » WordPress без плагинов » текущая страница
заказать разработку или сопровождение вашего сайта/блога

написано: — 
отредактировано: 2017-11-24
издатель: в теме: WordPress без плагинов пост видели: 2187
Запросто с WordPress — создание сайтов ATs media

Добавим текстовый редактор к полю редактирования описания рубрик, меток

Статья для тех, которые как-то стараются продвигать рубрики или метки своего сайта. А что для этого предприятия нужно? верно — поле ввода текста описания рубрики или тегов как-то модернизировать, чтобы обозначать текст описания тегами, подсказками поисковику о важности выделенного текста…

На мой взгляд, нелишне добавить текствый редактор к полю редактирования описания: удобно для прописки, к примеру, тегов strong и пр… кликнул на кнопочку и готово — ПС замечательно прочитает обозначенный текст как инфу к размышлению.

В возможностях по умолчанию этого чуда нет! а только банальное окошко для ввода «чистого» текста. (пояснения — фото ниже)

Ну, давайте с самого начала!


 

Как добавить текстовый редактор к полю описания рубрик-меток в админпанели — функция wp_editor()

 

 

 

Так выглядит страничка редактирования описания рубрик или тегов-меток — по умолчанию:

 

 

 

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

(а что у нас что получится — фото в финале)

 

 

 

Нам потребуется чуть-чуть изменить логику wp — относительно страницы редактирования меток-категорий:

 

функция:

 

wp_editor()    — введена примерно где-то в WP 3.3

 

Задачи функций здесь wp-includes/general-template.php

 

И соответственно: wp-includes/class-wp-editor.php  — WP 5.4

 

 

Эта функция выводит на экране поле формы textarea со стандартным визуальным и HTML редактором WP (TinyMCE).

В нашем примере возможно использовать в шаблоне, на странице редактирования описания категорий (category.php) и меток (tag.php)

 

 

Обратите внимание:

 

Если вы как-то мадернизировали свой редактор, например, добавляли свои кнопочки и пр. полезные примочки, то — выведется именно редактор с ВАШИМИ настройками. Что весьма удобно.

 

О всяких примочках и личных настройках, читайте подборку с тегом TinyMCE.

 

 

 

 

код для подключения текстового tinymce редактора в раздел редактировать рубрики, метки

 

 

 

 

Для прикрутки полноценного редактора wp на странички редактирования рубрик, меток — нужно прописать такой код в свой файл функций активного шаблона:

 

 

 

/** ВЫВОДИМ ТЕКСТОВЫЙ РЕДАКТОР в редактировать категории **/
function my_category_description($container = ''){
$content = is_object($container) && isset($container->description) ? html_entity_decode($container->description) : '';
$editor_id = 'tag_description';
$settings = 'description';
?>
<tr class="form-field">
<th scope="row" valign="top"><label for="description">Описание...</label></th>
<td><?php wp_editor($content, $editor_id, array(
'textarea_name' => $settings,
'editor_css' => '<style>.html-active .wp-editor-area{border:0;}</style>',
)); ?><br />
<span class="description">Описание по умолчанию обычно не отображается! <br /> однако - некоторые темы могут его показывать</span></td>
</tr>
<?php
}
remove_filter( 'pre_term_description', 'wp_filter_kses' );
remove_filter( 'term_description', 'wp_kses_data' );
/** фин: редактор в полях - убираем старое поле редактирования **/
function my_remove_category_description(){
global $mk_description;
if ( $mk_description->id == 'edit-category' or 'edit-tag' ){
?>
<script type="text/javascript">
jQuery(function($) {
$('textarea#description').closest('tr.form-field').remove();
});
</script>
<?php
}
}
add_action('admin_head', 'my_remove_category_description');           // фильтр старого поля - скрываем
/** убираем старое поле редактирования **/
add_filter('edit_category_form_fields', 'my_category_description');   // для категорий-рубрик
add_filter('edit_tag_form_fields', 'my_category_description');        // для меток-тегов
/** ФИН - выводим текстовый редактор в редактировать категории **/

 

 

 

Пояснения:

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

…и: my_remove_category_description — уберём старое поле редактирования описания…

Итак: в нашем случае, заменяем обычное окошко редакции описания рубрик, меток на собственное — модернизированное полноценным текстовым редактором.

 

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

Почему?

обратите (визуально) внимание на последовательность прогрузки при перезагрузке страницы «редактирования рубрик или меток».

Мелочь, но всё же…

 

 

 

 

как вывести форматированный текст описания категорий, тегов в html документе

 

 

 

Для того, чтобы информация выводилась непосредственно под очи ПС —

 

…нужно:

в соответствующие файлы категорий (category.php) и тегов (tag.php) — добавить строки вызова функции «дескрипшн» — но с оператором echo.

 

 

Эта выводит описание категорий: <?php echo category_description(); ?>

 

Эта выводит описание меток:        <?php echo tag_description(); ?>

 

 

…проверить «отработку размеченного теста» можно при помощи rds бара, обозначив, например, какое-то слово в описании тегами strong

 

 

…и ещё:

 

Вызывать функции description возможно как внутри цикла wp, так и за его пределами!

 

Я, например, добавляю за пределами цикла wp (хотя возможно и внутри — когда редактор, например, выводится для зарегистрированных пользователей — непосредственно в статье, но это тема иной публикации).

 

 

...какой-то ещё код:
сюда...<?php echo category_description(); ?>
<?php
if (have_posts()) : while (have_posts()) : the_post();

 

 

 

В итоге нынешних проделанных работ, получится что-то наподобие как на фото ниже:

 

 

 

текстовый редактор к полю описания рубрик меток-min

 

 

 

Как видите — получается полноценный текстовый редактор в разделе рубрик, меток. Хотя и вряд ли все-все примочки потребуются, — но всё же многие пригодятся!

 

Теговую атрибутику вовсю можно использовать как в визуальном варианте, так и в html.

 

 


подписка feedburner Online консультация по работе c сайтом на WordPress


!..подписываясь на обновления mihalica.ru
...расстаёмся с невежеством..!



...вопросы в комментариях - помогу, в чём дюжу...
mihalica.ru !


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

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




Нажатия на кнопочки определяют Ваше высокое гражданское сознание
Удачи в работе и творчестве..!
Статьи по теме:


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

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

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

 необходимо принять правила конфиденциальности 

  1. Да уж, прикольно получилось. Но мне пока не надо. А если понадобится, то лучше я попрошу тебя прикрутить такую штуку. )))
    Потому как с моей любовью к кодам, я там такого наприкручиваю, что потом сам конструктор вордпресс не разберет что, где и как.)))

    Ответить - Андрей

    • Привет-привет, Андрей!!
      …эта примочка нужна только тем, которые как-то продвигают рубрики или метки… чтоб всякими стронгами текст обозначить, или картинкой какой..! и всё это выводится на странице архива рубрик.
      А обычное описание (для пояснения гостям) можно вывести просто <?php echo category_description(); ?> для категорий — и описание (из админки) появится на фронтендееее.. категории))
      Интересно другое: я сейчас занимаюсь с товарищем по поводу ssl (бесплатного сертификата) StartCom — бестолковое занятие, доложу… ну, в плане приобретения и установки… хотя всё, на мой взгляд, должно быть просче)) — новичку солоно приходится! ))
      А ты говоришь…

      Ответить - Михаил

  2. А как прикрутить редактор к полю Биография в профиле пользователя?
    Может тоже есть готовый код для этого?

    Ответить - Ольга

    • Здравствуйте Ольга!
      Вопрос интересный!!!! и, в общем-то не очень сложный. Однако — нет, подобного готового кода под рукой нет… ибо такое решение мало кому требуется…
      Если хотите, подождите несколько времени — напишу статейку: я обычно так делаю по вопросам комментаторов…

      Ответить - Михаил

  3. Спасибо за ответ, Михаил. У меня кое-что получилось. Вернее, получилось добавить редактор вот этим кодом (по аналогии с Вашим для рубрик)

    /*    Добавляю редактор к полю Биография
    ========================================*/
    remove_filter('pre_user_description', 'wp_filter_kses');
    remove_filter( 'user_description', 'wp_kses_data' );
    
    function my_user_description($container = ''){
    	$content = is_object($container) && isset($container->description) ? html_entity_decode($container->description) : '';
    	$editor_id = 'user_description';
    	$settings = 'description';		
    	?>
        
    	Моя история
    	 $settings,
    				'editor_css' => '.html-active .wp-editor-area{border:0;}',
    	)); ?>
    	
        
        <?php	
    }
    add_action('show_user_profile', 'my_user_description', 10, 1);
    add_action('edit_user_profile', 'my_user_description', 10, 1);

     
    А вот убрать старое поле для биографии пока не сообразила как. Если подскажите, буду благодарна. И может есть какие-то ошибки в моем коде?

    Ответить - Ольга

    • Кодовое решение в статье не моё (я в коде только кое-что для себя изменил…) — код Кириллова.
      …я может быть Вас неправильно понял: о каком текстовом редакторе речь?
      Ваш код работать не будет! — в нём синтаксические ошибки и пр! или Вы как-то перекопировали неправильно, что ли
      Вы с какой версией движка экспериментируете?

      Ответить - Михаил

      • Здравствуйте. Еще нет решения — как прикрутить редактор к полю Биография в профиле пользователя?

        Ответить - Taras

        • Здравствуйте!
          Пока никому из заказчиков редактора в поле «Биография» не требовалось, так что вплотную заниматься этим вопросом не приходилось из-за нехватки времени.
          Чтоб прикрутить редактор к «биографии» придется решить и еще некоторые нюансы форматирования текста…

          Ответить - Михаил

          • А платно сможете прикрутить редактор в поле «Биография». Чтобы на страницы автора работали абзацы, html теги. Если да, то цена вопроса?

            Ответить - Taras

            • Вечер добрый…
              В данном вопросе играет роль не «цена вопроса»… (готового решения нет, за которое я смогу поручиться, а работа — требует времени) Так что о цене речи пока нет! …подобные решения как правило требуется тестировать, потому как определённые трудности ПРАВИЛЬНОГО прикручивания текстового редактора именно к полю «Биография» связаны с безопасностью! А раз так, то приходится перепроверять и перепроверять…
              Вам нужно именно поле «Биография»? (чтоб информация прикручивалась к данным автора?) или просто поле информации?
              Как скоро вам это нужно реализовать?

              Ответить - Михаил

              • Думаю все немного проще мне нужно.
                Чтобы на самой странице Автора (например: site.ru/users/evgeniy) работали html теги (, , и ссылки с анкорами), чтобы были абзацы, чтобы можно было добавить фото и выровнить его по левому краю. На данный момент текст сплошняком отображается без абзацев, а нужно вот так: //ibb.co/zfGrsRp
                Так как авторы все свои, никто не просунет что-то лишнее. Поэтому с точки зрения безопасности я не волнуюсь.


              • ну, в принципе понял. Т.е. инфа выводится (и записывается) не в админке WP в разделе профиль, а во фронтенде, на странице автора. Правильно?
                Тогда нужно смотреть каким образом у вас реализована страница автора (вывод полей) хотя принцип по сути одинаков, но всё же.
                Ну и к соответственному полю пытаться прикрутить редактор…
                Картинка имеется в виду аватарка..? (тогда это просто компоновка элементов).
                У вас (копия) тестовый сайт есть?

                Поэтому с точки зрения безопасности я не волнуюсь.

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


              • Т.е. инфа выводится (и записывается) не в админке WP в разделе профиль, а во фронтенде, на странице автора. Правильно?

                Инфа об авторе записывается в админке WP (Биография): //ibb.co/Byx9kZq
                Но странице автора site.ru/users/evgeniy текст, который написан в админке WP (Биография) выводится сплошняком, то есть все слитно и без абзацев, а нужно, чтобы выводился с абзацами, как на скрине в прошлом сообщении или вот пример: .

                Картинка имеется в виду аватарка..?

                Нет. Обычное фото автора, загруженное в медиафайлы.

                Вам, возможно, проще просто-напросто добавить определённые поля для заполнения автором. (и всё это скомпоновать)

                Заполнять инфу об авторе буду только я. Доступ будет только у меня.


              • По примерам и скринам я понял, что вам нужно.!.
                Я просто сомневаюсь, что подход к решению у вас правильный!
                Например, на сайте, который вы мне давали примером (ссылку я стёр), вряд ли информация об авторе-юристе записывалась в раздел «Биография». Раздел Биография стараются не использовать для подобных целей, вот поэтому и я редко сталкивался с запросами клиентов похожими на ваш.
                Для того, чтоб вывести инфу об авторе как на вашем сайте-примере, в админке создаётся специальный инфо-блок (заполняется) и выводится там, где нужно (например, на страницах архивов авторов)…
                К тому же: вы говорите, что будете заполнять информацию об авторе самостоятельно (как админ)… НО НЕ САМ автор её заполняет…
                Вот о чём я говорю. И в таком случае, вопрос решается достаточно просто, главное определиться каким из вариантов…


              • Вам, возможно, проще просто-напросто добавить определённые поля для заполнения автором. (и всё это скомпоновать

                А можно таким образом добавить поля: Опыт работы, Образование, Специализация, Профиль в соц-сети (и ссылку на профиль) и добавить описание к этим полям (текст), так же добавить фото автора и фото диплома об образовании?


              • Это (из цитаты) я писал для случая, если автор САМ заполняет во фронтенде о себе информацию, вписывая в определённые поля.
                …и если админ заполняет данные об авторе в АДМИНКЕ самолично, то и в этом случае можно добавить любые поля… Однако, возможно, проще добавлять информации в единое поле, например как при редакции записи/статьи. Простота наше всё! чем проще, тем ловчее…


              • Для того, чтоб вывести инфу об авторе как на вашем сайте-примере, в админке создаётся специальный инфо-блок (заполняется) и выводится там, где нужно (например, на страницах архивов авторов)…

                Есть нюанс, ссылка на страницу автора есть в каждой статье сверху //bukvaprava.ru/kak-zabrat-zayavlenie-na-alimenty/ и она выводится микроразметкой:

                <span class="author" itemprop="author" itemscope="" itemtype="http://schema.org/Person"> 
                Автор статьи: <a href="//bukvaprava.ru/author/dindruska/" target="_blank" rel="noindex, follow"> 
                <span itemprop="name">Курбанова Дина Альфредовна, юрист</span> 
                </a> </span>

                То есть, мне также нужно, чтобы ссылки на авторов можно было указывать для каждой статьи, и чтобы ссылка вела на отдельную страницу с автором. Микроразметка на сайте у меня есть Schema.org/microdata.


              • Ваша задача определиться с вариантом заполнения и выводом информации в архиве автора. Решить всё это…
                А ссылка тут ни при чём — которая и была, такая и останется… Эти ссылки выводятся автоматически для каждой статьи.


              • Для того, чтоб вывести инфу об авторе как на вашем сайте-примере, в админке создаётся специальный инфо-блок (заполняется) и выводится там, где нужно (например, на страницах архивов авторов)…

                Вы можете это реализовать?


              • Да! могу… (сегодня покопался)
                Вам нужно в разделе «редактировать профиль» добавить добавочный инфо-блок об авторе: с текстовым редактором TinyMCE. А затем функцией вывести эту информацию в архивах авторов — для каждого свою…
                Можно сделать так, что поле-инфо-блок для заполнения будет только для прав администратора. Безопасности для… я вам толковал об этом ранее.
                Пишите мне на почту…

                (вот статья, в которой описан вариант создания блока об авторе)

  4. Здравствуйте, Михаил!
    не подскажете ли решение для: всё сделал по вашей инструкции. Замечательно!!
    Но вот мне нужно теперь вывести (опять по вашей же инструкции Open Graph) дескрипшн на стр. категорий. Выводится, однако сохраняются html теги! переносы… Как это убрать?

    Ответить - Сергей

    • Здравствуйте Сергей!
      Убрать просто: например, при помощи wp_filter_nohtml_kses (переносы строк останутся!)

      $dds = tag_description();
      $ddss = wp_filter_nohtml_kses( $dds );

      или же при помощи wp_strip_all_tags (будут очищены и переносы строк!)

      $dds = tag_description();
      $ddss = wp_strip_all_tags( $dds, 0 );

      …подставляйте переменные! и готово.

      Ответить - Михаил