Вы здесь: Главная » Wordpress » Полезные мелочи для тем и плагинов на WordPress

Полезные мелочи для тем и плагинов на WordPress

В этой статье вы найдете ряд полезных мелочей, которые вам могут пригодится при создании новой или дочерней темы WordPress.

Как проверить, есть ли контент в записи/на странице

За вывод содержимого записи или страницы WordPress отвечает функция the_content(). Если автор не заполнил текст записи, мы можем проверить это с помощью такого кода:

В переменную $checkContent попадет контент текущего поста, который выводится либо в цикле WP, либо на странице single.php. В зависимости от того, есть контент или нет, мы отобразим или спрячем определенный блок. Это удобно делать с произвольными типами постов, которые выводятся на одну страницу, например, на Landing Page или на страницу резюме.

Использование классического редактора WordPress (TinyMCE) для произвольных полей

Произвольные поля - очень интересная возможность WP для создания дополнительных атрибутов, выводимых на страницах или в записях. Чаще всего для них создают текстовое поле (<input type="text">) или текстовую область (<textarea>), но в ряде случаев бывает значительно удобнее писать текст в стандартном текстовом редакторе WordPress. Тогда вам стоит воспользоваться функцией wp_editor() с такими параметрами:

Обращу внимание на параметр 'wpautop'. Со значением  false он добавляет html-разметку в виде абзацев, что важно при сохранении произвольных полей, текст которых вы хотите представит на сайте с привычным форматированием. Если же вы оставите там значение true, то в html-редакторе будут присутствовать любые теги (<h2>, <strong>, <em>), но не <p>. Соответственно, при сохранении, разбивка на абзацы не будет учтена, и на сайте текст выведется сплошным блоком.

Например, у нас есть некое поле Portfolio Description и в нем - ряд абзацев.

wp-editor в произвольном поле

Так выглядит текст в виде html-разметки в произвольном поле с редактором.

разметка с помощью абзацев

Если же значение параметра 'wpautop' будет равно true, разбивка на абзацы будет видна в редакторе, но не сохранится в базу данных. Сравните скриншоты выше и ниже этого абзаца.

значение wpautop true

Исправление ошибки "Call to undefined function wp_get_current_user()"

Опишем ситуацию появления ошибки Fatal error: Call to undefined function wp_get_current_user() - она возникает, когда вы пытаетесь записать какой-либо код, который проверяет права пользователя на выполнение каких-либо  действий вне кода функции, привязанной к хуку WordPress.

fatal error при вызове функции urrent_user_can()Этот код выполняется раньше, чем ядро WordPress загрузит нужные для обработки пользовательских разрешений файлы и функции. Поэтому самым простым выходом является запись нужного вам кода при вызове хука 'init':

Добавление поддержки html-тегов в профиле пользователя

В обычном виде профиль пользователя позволяет вывести только текст, в котором нет таких очень популярных тегов, как <strong>, <em>, <a>, т.к. при попытке добавить их и сохранить изменения в профиле, специальный фильтр WordPress очистит наше форматирование. Поэтому  информация о пользователе выглядит скучно.

Обычное форматирование биографии пользователя

Кроме того, при выводе текста не сохраняются абзацы, которые видны в текстовом поле биографии в профиле.

Вывод биографии на сайте

Добавить форматирование с помощью html-тегов в описании пользователя мы можем с помощью всего 2-х строчек:

После этого изменим текст, добавив выделение жирным, курсивом и ссылки:

Биография пользователя с html-тегами

 

Результат будет уже другим:

Вывод биографии на сайте c html-тегами

Для того чтобы вывод текста был разбит на абзацы, необходимо в теме на странице одиночного поста (single.php) или страницы (page.php) записать примерно такой код:

Вы можете получить информацию о пользователе и другим способом, например, с помощью функции wp_get_current_user() или get_the_author_meta(). А функция wpautop() выполнит разбивку на абзацы.

Использование классического редактора WordPress (TinyMCE) для редактирования биографии пользователя в его профиле

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

Для  того чтобы отключить вывод <textarea id="description">, которая выводится для заполнения биографии пользователя по умолчанию, необходимо подключить еще простой скрипт. Добавляем скрипт для админки WP:

В файле my-script.js записываем небольшой код:

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

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *