Делаем форму обратной связи wordpress: плагин contact form 7, функции в темах и самописный код

Зачем создавать пользовательский тип записей или таксономию?

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

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

Еще один пример – создание портфолио на сайте художника, фотографа или музыканта. Помимо текстового контента, вы можете создать отдельный раздел с удобными выводом и сортировкой своих работ.

robots.txt

Если Вы не знаете, что такое robots.txt и для чего он нужен, то можете почитать в справке Яндекса. Чтобы не мучиться и не составлять его самостоятельно, Вы можете просто его скачать.

Не забудьте исправить в файле свой сайт заменив site.ru и site.ru/sitemap.xml на свой. Также пропишите http или https. Теперь его нужно закачать к себе на сервер в корневую папку, где установлен Ваш блог.

Если вы пользуетесь хостингом “Бегет”, который я рекомендую, то загрузить этот файл вы можете следующим образом. Зайдите в хостинг и нажмите “Файловый менеджер”.

Найдите папку с вашим сайтом и зайдите в нее нажав 2 раза. Вы должны увидеть вот это:

Зайдите в эту папку нажав 2 раза. Теперь вы попали в корневую папку своего сайта. Теперь нажмите “Загрузить файлы” и “Browse…”

Выберите файл и нажмите на кнопку “Загрузка”. Файл загружен на сайт.

Теперь можете проверить. Введите в поисковой строке такой запрос:

в место site.ru подставьте свой сайт. Также учтите значение https или http.

Кэширование

Если вы планируете высокопроизводительное приложение, обслуживающее миллионы пользователей, то вам нужен подходящий механизм кэширования. В WordPress есть встроенный механизм Transient API, который обеспечивает функцию кэширования на уровне базы данных для применения в вашем приложении.

Если вы ищете более продвинутые механизмы кэширования с полным контролем в ваших руках, тогда такие плагины, как W3 Total Cache, удовлетворят вашему желанию. Используйте этот способ управления кэшем без больших накладных расходов.

И снова, большинство фреймворков поддерживают эту функцию. Примером могут служить Yii и Laravel, оба обеспечивают очень простой механизм кэширования, пожалуй, лучше, чем WordPress, с помощью которого вы можете улучшить производительность вашего приложения.

За пределами основ #За пределами основ

Самое интересное в WordPress то, что здесь есть несколько ограничений. Тысячи людей используют WordPress для ведения блогов и ведения своих веб-сайтов. Например, посмотрите некоторые записи в разделе Витрина тем WordPress.org. Все они имеют разный вид и разный функционал на своих сайтах. Что вы будете делать дальше, зависит от вас, но вот несколько мест, где можно сделать первый шаг, помимо основ:

  • Возможности WordPress
  • Работа с WordPress
  • Семантика WordPress
  • Использование страниц
  • Исправление проблем
  • Использование постоянных ссылок
  • Получение дополнительной помощи
  • Использование форумов поддержки

WP_DEBUG #WP_DEBUG

это константа PHP , используемая для установки режима отладки в WordPress. По умолчанию она имеет значение «false», но может бытьу становлена как «true» в файле конфигурации wp-config.php на сайтах, на которых проводится отладка.

Заметка: значения и в примере не заключены в кавычки или апострофы, поскольку являются булевыми (правда/ложь) значениями. Не заключайте их в кавычки (например ), иначе они станут восприниматься как строковые значения.

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

PHP ошибки, предупреждения, и заметки

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

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

Заметка: Не стоит самостоятельно заниматься исправлением кода ядра, плагинов, тем. Сообщите о проблеме разработчикам соответствующих компонентов, чтобы они внесли исправления в будущих версиях.

Устаревшие функции и аргументы

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

как убрать полностью показ cms сайта (generator) и его версию

Обратите внимание на строку 13 в коде показанном выше… Посредством этой строки мы уберём следующий метатег в исходном коде:

Вообще, стоило бы для начала поработать с файлом вашей темы header.php но касательно этой темы у меня написаны иные статьи…

Для чего все эти «закрывашки» нужны, думаю, вам известно!

…а значит пойдём дальше… ибо многие на этом этапе СКРЫТИЯ CMS останавливаются: рекомендую дочитать статью до финала!

к оглавлению

как убрать отображение версии движка из фида-ленты

/*** защита сайта запрет показа версии движка сайта ***/ function remove_version() { return »; } add_filter(‘the_generator’, ‘remove_version’); /*** защита сайта запрет показа версии движка сайта ***/ Теперь, ради эксперимента и уж коли коснулись защиты сайта, пропишите в адресной строке, например так:

https://mihalica.ru/wp-content/plugins/

ИЛИ https://mihalica.ru/wp-content/

!! Окно браузера должно быть пусто !! …и если у вас не так… …то вот — чтобы ваш сайт был защищён от взлома, читайте здесь!

Не забудьте при тестировании своего сайта поменять имя моего домена на свой)

Ну и заодно уж не дадим взломщику-новичку, при его входе в админку, информацию о том что из: логин или пароль подобраны не правильно!

Далее в файле функций пропишите вот такой чудо код:

/** уберём подсказку — неправильный логин-пароль — при входе в админку **/ add_filter(‘login_errors’,create_function(‘$a’, «return NULL;»)); /** уберём подсказку — неправильный логин-пароль при входе в админку **/

Обратите внимание на стрелку и сравните у себя! поле при ОШИБОЧНОМ ВХОДЕ должно быть чисто — инфа удалена…

А вот об изменени самого адреса входа в адмипанель, читайте в этой статье о плагине Better WP Security…

И ещё —

к оглавлению

Управление сниппетами

Плагин Code Snippets отображает все ваши сохраненные сниппеты в админке WordPress точно так же, как и обычные записи или страницы.

А значит, вы можете привычным способом их сортировать, править, включать / отключать, удалять и даже экспортировать:

Если вы переносите сайт на другой сервер или хостинг для WordPress, вы можете предварительно экспортировать все ваши сниппеты, а потом импортировать их на новом сайте в меню Snippets → Import.

Также вы можете посмотреть дополнительные настройки плагина в меню Snippets → Settings:

Надеюсь этот урок вам помог, и вы больше не будете бояться что-то сломать на сайте в процессе добавления кода в functions.php. Лучше используйте Code Snippets!

Плагины. Установленные

Плагины – это специальные дополнения к WordPress, которые улучшают или упрощают работу с блогом. Плагинов существует великое множество. Не спешите устанавливать все подряд, так как это будет нагружать систему и скажется на медленной загрузки блога.

  • Лучшие плагины для WordPress
  • Как установить плагин WordPress

Будет медленная работа сайта – будут низкие позиции в поисковой выдаче. Достаточно установить несколько самых нужных и важных плагинов. Весь список установленных плагинов будет отображаться в этом разделе.

8.1. Добавить новый

Переключите вкладку на “рекомендуемые” и найдите такой плагин. Google XML Sitemaps. Если его нет в списке, то скопируйте название и введите его в строку поиска, как показано на картинке.

Установите и активируйте этот плагин. Он сразу же появится в списке установленных. Данный плагин создаст карту сайта и поможет поисковым системам разобраться во всей структуре Вашего блога.

Следующий плагин, который нам потребуется, это Cyr to Lat enhanced. Этот плагин преобразовывает слова из кириллицы в латиницу.

На картинке ниже наглядно видно работу этого плагина. В 1 варианте с плагином, во 2 без. Для поисковой системы Яндекс это не критично, он хорошо воспринимает такие ссылки. Ставить этот плагин или нет, решать только Вам.

Я привык к латинскому формату и всегда ставлю этот плагин. Найдите его, установите и активируйте.

Плагин Yoast SEO

Также нам понадобится еще один плагин. Yoast SEO. Этот плагин помогает с поисковой оптимизацией. Если Вы умеете его настраивать, то обязательно устанавливайте.

После установки плагин требует дополнительной настройки. Если Вы не знаете, как его настроить, то пока не устанавливайте его. Меню “редактор плагинов” пропустим, так как оно нам не понадобится.

Отключение и подключение jQuery

Код, отвечающий за отключение библиотеки, вставляется в разных файлах. Для современной версии движка, предлагаем выводить его в functions.php. Находим файл в директории шаблона, открываем его. К слову, рекомендуем именно скачать functions.php на ПК, сделать резервную копию и править код утилитой Notepad++. Последняя является специализированным инструментом для работы с PHP. Имеет построчная нумерация, подсветка функций, автоматический выбор при вводе, масса других полезностей. Итак, открыли functions.php, вставляем следующие строки:

Данное решение можно назвать наиболее удобным,
универсальным, корректным

Во-первых, обратите внимание на is_admin. Это
функция прописывается не случайно

Она отключает библиотеку на веб-ресурсе, но
сохраняет ее опцион в панели администратора. То есть, jQuery отключает точечно
без ущерба для сторонних алгоритмов. У этого варианта есть оговорка: он
сработает, когда библиотека прописана в header.php посредством команды wp_head.
Если jQuery представлена скриптовым тегом, просто его удаляете. Не уходя
далеко, рассмотрим этот метод ее добавления в файлы темы. В интернете часто
предлагают аналог в виде подключения библиотеки тегом script. В нынешних реалиях, применять
его не стоит. Он отличается рядом серьезных минусов, которые отразятся на
сторонних алгоритмах. Первая и самая веская – работа смежных скриптовых
модулей. Тег – это простое, но сквозное решение. Он инициирует работу напрямую,
игнорируя сторонние функции. Часто результатом становится необъяснимые
отключения, крэши соседних скриптов. Вторая причина глубже – невозможность
оптимизации. Она станет понятна позднее.

С отключением разобрались, но как инициировать обратный процесс подключения? Обращаемся к уже знакомому functions.php. Новый кусок кода не сильно отличается от предыдущего. В нем используется скриптовая команда с обратным параметром подключения – wp_enqueue_script. Запомните ее назначение, для понимания дальнейшего процесса обновления.

На этом с процессами отключения, подключения библиотеки
покончено. Это может потребоваться для обновления в ручном, а не автоматическом
режиме, тестировании работы других скриптов, нахождении ошибок в работе системы
методом от «обратного» и т.д.

Советы по улучшению этой работы

Вы отключили несколько скриптов и стилей, но вам нужно что-то с ними сделать. Вот список советов о том, как использовать методы, описанные в этом руководстве:

  • Добавьте стили, которые вы отключили, в конец style.css файла вашей темы и отредактируйте их оттуда, чтобы получить желаемый вид.
  • Объедините несколько скриптов в один файл и загрузите его самостоятельно. Я бы сделал это только для вещей, которые используют одну и ту же библиотеку JavaScript. Например, я часто комбинирую скрипты, которые построены на jQuery.
  • Используйте условные теги для детального контроля над загрузкой скрипта или стиля.

Если вы отключите что-то, это может привести к некорректной работе плагина или темы. Большинство стилей можно легко добавить в таблицу стилей вашей темы, чтобы вы не загружали тонну таблиц стилей на свой сайт. JavaScript — это совсем другой зверь, и я рекомендую объединять несколько файлов в один, только если вы знаете, что делаете.

Шаг 3. Создайте кастомное меню

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

Установите и активируйте плагин Nav Menu Roles:

Nav Menu Roles

Author(s): Kathy Darling

Current Version: 2.0.1

Last Updated: 19.04.2021

Перейдите во Внешний вид — Меню и создайте меню. Назовите его, например, Member menu.

Отметьте все ваши мембершип страницы, закрытый контент, всё, что вы хотите поместить в меню:

Добавьте страницы

Плагин Nav Menu Roles добавляет возможность скрывать или показывать элементы меню в зависимости от роли пользователя.

Раскройте элемент меню и сделайте нужные настройки:


Видимость элементов меню

Сделайте настройки видимости для своих страниц, например, такие:

  • Страница авторизации: Display Mode — Logged Out Users
  • Регистрация: Display Mode — Logged Out Users
  • Страница Профиля: Display Mode – Everyone; Access Role – Member
  • Закрытый контент: Display Mode – Everyone; Access Role – Member (плюс Author, Editor, Administrator)

Нажмите Сохранить.

Другие плагины, с помощью которых вы можете скрывать / отображать элементы меню.

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

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

jQuery в режиме noConflict

В режиме «no-confict» ярлык $ недоступен, вместо него используется слово jQuery. Например:

$(document).ready(function(){
     $(#somefunction) ...
});

нужно переделать так:

jQuery(document).ready(function(){
    jQuery(#somefunction) ...
});

Чтобы использовать функцию $ как обычно, можно обернуть ваш код в такой фрагмент:

jQuery(document).ready(function($) {
    // Внутри этой функции $() будет работать как синоним jQuery()

});

В этом фрагменте ваш код будет выполнен, когда страница полностью загрузится. Если по какой-то причине вы хотите, чтобы код был выполнен сразу (без ожидания события «ready» в DOM), можно использовать такой фрагмент:

(function($) {
    // Внутри этой функции $() будет работать как синоним jQuery()
})(jQuery);

Шаблон для списка постов произвольного типа записи WordPress

Перейдя в раздел /books, вы увидите список постов, а для их вывода WordPress использует шаблон archive.php. Для того, чтобы изменить этот шаблон на свой и сделать другую верстку страниц или же добавить дополнительную информацию к карточкам книг нужно в папке темы создать файл — archive-books.php. Вместо books вы указываете slug своего типа записей. После этого копируете содержимое archive.php в файл archive-books.php и далее уже редактируете шаблон под свои задачи.

Аналогично можно создать и шаблон для отдельной записи кастомного типа. Для этого создайте файл single-books.php (вместо books название вашего типа) в папке вашей темы. Скопируйте туда содержимое файла single.php и после этого можете редактировать шаблон, так как вам нужно.

Как привязать произвольные поля?

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

Додавать произвольные поля можно с помощью стандартного функционала WordPress.

 Для того чтобы их вывести на сайте используется следующий код.

Тут два примера. Первый  использованием функции the_meta(). Которая выведет все указанные для поста произвольные поля в списке ul. Второй get_post_meta() – получает значения, и при необходимости может вывести отдельный тип поля.

Обычно при выводе конкретного поля проверяют, существует ли оно, и только потом выводят его значения. Пример кода ниже.

Устанавливаете и активируете плагин. Переходите в меню «Группы полей» — «Добавить». Заполняете и добавляете свои поля к группе.

Выводить поля можно с помощью конструкций.

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

Подключаем Gutenberg к пользовательским типам записей

С версии WordPress 5.0 запущен новый визуальный редактор Gutenberg. Но создавая вручную новый тип кастомных записей при редактировании их, вы будете видеть старый редактор — Classic Editor.

Чтобы подключить Gutenberg вам, при создании кастомного типа постов стоит прописать новый параметр.

После чего можно идти в админку и проверять изменения.

Пример кода с включением редактора Gutenberg.

На этом все. Мы рассмотрели основные моменты, которые вам нужно знать при работе с произвольными типами записей в данной CMS. Далее только практика и изучение всех дополнительных возможностей этого функционала в WordPress.

Я сделал 5-минутную установку. И что теперь? #Я сделал 5-минутную установку. И что теперь?

Вы только что завершили 5-минутную установку WordPress или установку в один клик с вашего веб-хостинга. Итак, каков ваш следующий шаг?

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

Вход в консоль

Начните со входа в административную часть или своего веб-сайта. Посетите страницу входа на свой сайт, написав wp-admin после имени домена (например, http://example.com/wp-admin). Некоторые темы также предоставляют ссылку для входа или форму на сайта. Теперь войдите в WordPress, используя имя пользователя и пароль, которые вы создали во время 5-минутной установки.

Начнем с самого верха

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

Вверху экрана находится область, называемая . Нажмите на название вашего сайта — это ссылка на главную страницу вашего нового сайта WordPress

Нравится? Не нравится? Неважно, просто посмотрите на это. Здесь вы будете проводить много времени!

Как создать дочернюю страницу

Чтобы создать дочернюю страницу, вам понадобится родительская страница. Если у вас уже есть страница, которую вы хотели бы использовать в качестве родителя, тогда идем дальше.

Просто перейдите на страницу «Добавить новое», чтобы создать новую страницу или отредактировать существующую страницу в области администрирования WordPress. С правой стороны вы увидите окно « Атрибуты страницы» с раскрывающимся списком «Родитель» .

В раскрывающемся списке «Родитель» выводится список всех страниц вашего сайта. По умолчанию он установлен в «no parent (не родитель)», что означает, что эта страница является отдельной страницей без иерархии. В раскрывающемся меню вам нужно выбрать страницу, которую вы хотите использовать в качестве родителя.

После этого вы можете просто продолжить и сохранить свои изменения. Этот процес можно повторять, создавая все новые дочерние страницы.

Чтобы просмотреть дочерние страницы, вы можете перейти на вкладку Страницы –» Все страницы в области администрирования WordPress. Вы увидите дочерние страницы в виде иерархической структуры, перечисленные в их родительской странице с  префиксом.

Затем вы можете продолжить и добавить свои дочерние страницы в меню навигации вашего веб-сайта в качестве элементов подменю.

Надеемся, что статья помогла вам научиться создавать дочернюю страницу в WordPress.

Отключение JavaScript на сайте

Не все плагины используют соответствующие методы для загрузки скриптов и стилей. Некоторые разработчики просто добавляют код прямо в шапку. Обычно это происходит потому, что они не знакомы с двумя важными функциями WordPress: wp_enqueue_script () и wp_enqueue_style () , которые подключают внешние файлы CSS и JavaScript. Если используемый вами плагин или автор темы не использует эти функции, то попросите их сделать это. Это позволяет нам в дальнейшем работать с их кодом, используя методы, предоставляемые WordPress.

Прежде всего вам нужно найти какие скрипты или стили вы хотите отключить. Выполнив следующие шаги:

В этом примере я покажу как отключить загружаемый Javascript-файл контактной формы, за исключением выбранной страницы. Например страницу контактов.

add_action( ‘wp_print_scripts’, ‘my_deregister_javascript’, 100 );
 
function my_deregister_javascript() {
   if ( !is_page(‘Contact’) ) {
    wp_deregister_script( ‘contact-form-7’ );
     }
}

1
2
3
4
5
6
7

add_action(‘wp_print_scripts’,’my_deregister_javascript’,100);

functionmy_deregister_javascript(){

   if(!is_page(‘Contact’)){

    wp_deregister_script(‘contact-form-7’);

     }

}

1. Отключение JavaScript на страницах WordpPress

Отредактируйте значения Home и javascript-name-file в соответствии с вашими именами JS файлов.

add_action( ‘wp_print_scripts’, ‘my_deregister_javascript’, 100 );
 
function my_deregister_javascript() {
   if ( !is_page(‘Home’) ) {
    wp_deregister_script( ‘javascript-name-file’ );
     }
}

1
2
3
4
5
6
7

add_action(‘wp_print_scripts’,’my_deregister_javascript’,100);

functionmy_deregister_javascript(){

   if(!is_page(‘Home’)){

    wp_deregister_script(‘javascript-name-file’);

     }

}

2. Отключение JavaScript в записях WordPress

Для публикаций используйте идентификатор записи WordPress. Например ‘1’ и javascript-name-file это имя JS скрипта, который необходимо отключить.

add_action( ‘wp_print_scripts’, ‘my_deregister_javascript’, 100 );
 
function my_deregister_javascript() {
   if ( !is_single(‘1’) ) {
    wp_deregister_script( ‘javascript-name-file’ );
     }
}

1
2
3
4
5
6
7

add_action(‘wp_print_scripts’,’my_deregister_javascript’,100);

functionmy_deregister_javascript(){

   if(!is_single(‘1’)){

    wp_deregister_script(‘javascript-name-file’);

     }

}

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

Что такое GDPR

Общее правило защиты данных (GDPR) является законом Европейского союза (ЕС), вступившим в силу 25 мая 2018 года. Целью GDPR является предоставление гражданам ЕС контроля над своими личными данными и изменение подхода к конфиденциальности данных организаций во всем мире.

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

Штрафы

В основном после 25 мая 2018 года компании, которые не соответствуют требованиям GDPR, могут столкнуться с большими штрафами до 4% годового глобального дохода компании или 20 миллионов евро (в зависимости от того, что больше). Этого достаточно, чтобы вызвать широко распространенную панику среди предприятий во всем мире.

Это подводит нас к большому вопросу, о котором вы могли подумать:

Относится ли GDPR к моему сайту WordPress?

Ответ: ДА. Это относится ко всем предприятиям, крупным и малым, во всем мире (не только в Европейском союзе).

Если на вашем сайте есть посетители из стран Европейского союза, то этот закон применяется к вам.

Но не паникуйте, это еще не конец света.

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

ЕС — это не какое-то злобное правительство, которое хочет вас наказать. Их цель — защитить потребителей, обычных людей, таких как вы и я, от безрассудного обращения с данными / нарушениями, потому что они выходия из-под контроля.

На наш взгляд, максимальный штраф в основном должен привлекать внимание крупных компаний, таких как Facebook и Google, поэтому это правило НЕ игнорируется. Кроме того, это побуждает компании уделять больше внимания защите прав людей

Заключение

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

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

Помните, вы можете выловить все мои курсы и учебники на странице Моего профиля, и вы можете следовать за мной в моем блоге и/или Twitter @tommcfarlin, где я говорю о различных практиках разработки программного обеспечения и как мы можем использовать их в WordPress.

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

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Все про сервера
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: