Различия

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


Предыдущая версия
wordpress [2025/07/06 12:40] (текущий) – внешнее изменение 127.0.0.1
Строка 1: Строка 1:
 +====== WordPress ======
 +~~Title: WordPress использование, настройка ~~
 +{{htmlmetatags>
 +metatag-keywords=(WordPress, PHP)
 +metatag-description=(WordPress подключить Google Analytics и/или Яндекс Метрику. Cделать отступы в абзацах. Вопросы обновления и кеширования.)
 +}}
  
 +{{ :wordpress_install.jpg?nolink&400 |}}
 +
 +Начнем с главного, а это значит с хостинга, так вот WordPress.org официально рекомендует только три хостинга провайдера, это [[https://dieg.info/review/obzor-dreamhost/|DreamHost]], BlueHost и SiteGround. Мое личное мнение, если выбирать из этих трех, то это [[https://dieg.info/review/obzor-dreamhost/|DreamHost]], а так достаточно много прекрасных альтернатив от [[https://dieg.info/review/hosting-zomro/|Zomro (Зомро)]] и [[https://dieg.info/review/hosting-s-host-com-ua/|СХОСТ (S-Host)]] до [[https://dieg.info/review/obzor-pq-perfect-quality-hosting/|Perfect Quality Hosting (PQ)]]
 +
 +Скачать последнюю версию Wordpress:
 +
 +  * Завантажити [[https://uk.wordpress.org|WordPress Україна (Українська мова)]]
 +  * Скачать [[https://ru.wordpress.org/download/|WordPress Россия(русский язык)]]
 +  * Скачать последнюю версию WordPress English <file bash>
 +wget -c https://wordpress.org/latest.zip
 +</file>
 +
 +<panel type="success" title="Все о WordPress">
 +  * [[лучшие wordpress плагины]]
 +  * [[Шорткоды WordPress]]
 +  * [[https://dieg.info/articles/bezopasnost-wordpress/|Руководство (обновляемое) Безопасность 💥 Wordpress]]
 +  * [[wp-cli]]
 +  * [[wordpress htaccess default]]
 +  * [[Site Kit]]
 +  * [[wiki плагины wordpress]]
 +WordPress Плагины кэширования: В самом ядре WordPress кэширование страниц не реализовано, но есть все необходимые функции для реализации этого на уровне плагинов.
 +
 +  * [[Кэширование сайта]]: теория и практика, обзор плагинов для кэширования страниц в Wordpress: W3 Total Cache, WP Super Cache, Hyper Cache, Hyper Cache, WP-Rocket, WP Fastest Cache.
 +  * [[redis#kak_podkljuchit_redis_v_cms_wordpress|Как подключить Redis в CMS WordPress]]
 +  * [[custom_fields]]
 +  * [[wordpress_multisite]]
 +</panel>
 +
 +====== Установка Wordpress на Debian, Ubuntu ======
 +
 +Инсталляция на Debian, [[Ubuntu|Ubuntu]]
 +  * Установка недостающих зависимостей (у вас они уже могут быть установлены).<file bash>
 +apt install mysql-server phpmyadmin
 +apt install libjs-cropper libjs-prototype libjs-scriptaculous \
 + libphp-phpmailer libjs-jquery libphp-snoopy php-gettext 
 +</file>
 +  * **Инсталляция**:<file bash>
 +mkdir wordpress
 +cd wordpress/
 +wget -c https://wordpress.org/latest.zip
 +unzip latest.zip
 +cp wp-config-sample.php wp-config.php
 +</file>
 +  * Создаем в [[MySQL]] БД для нашего сайта и пользователя от которого будет работать [[CMS]] WordPress, например при помощи [[phpmyadmin]]. Полученными данными заполняем файл wp-config.php. <file sql>
 +mysql> CREATE DATABASE databasename;
 +Query OK, 1 row affected (0.00 sec)
 + 
 +mysql> GRANT ALL PRIVILEGES ON databasename.* TO "wordpressusername"@"localhost"
 +    -> IDENTIFIED BY "password";
 +Query OK, 0 rows affected (0.00 sec)
 +  
 +mysql> FLUSH PRIVILEGES;
 +</file>
 +<file sql>
 +CREATE DATABASE databasename;
 +GRANT ALL PRIVILEGES ON databasename.* TO "wordpressusername"@"localhost" IDENTIFIED BY "password";
 +FLUSH PRIVILEGES;
 +</file>
 +  * Обязательно заполните уникальные ключи и соли для аутентификации в файле wp-config.php. Для этого как указано в самом файле wp-config.php удобно использовать [[https://api.wordpress.org/secret-key/1.1/salt/|генератор ключей для Wordpress]].<file>
 +# chown -R www-data:www-data /var/www/example.com
 +# chmod 600 wp-config.php
 +</file>
 +  * Заходим при помощи браузера на ваш сайт http://www.example.com/wp-admin/install.php и заполняем название сайта и пользователя с правами суперпользователя. Можно не ставить галочку напротив пункта "Разрешить поисковым системам индексировать сайт.", в дальнейшем это можно изменить в административной панели.
 +  * [[wordpress#wordpress_-_nastrojka_chpu|Настраиваем ЧПУ]] без добавления html к названию страницы, то есть <file>
 +/%category%/%postname%
 +</file>
 +
 +====== Wordpress. Права доступа в файлам и директориям ======
 +
 +Безопасные атрибуты для файлов и папок Wordpress, используя утилиту [[chmod]]: 755 на папки; 644 на файлы; 600 на wp-config.php. Для установки компонентов нужно разрешить Apache писать и удалять в директории wp-content.
 +<file bash>
 +find public_www/wp-content -type d -exec chmod 770 {} \;
 +find public_www/wp-content -type f -exec chmod 660 {} \;
 +</file>
 +
 +====== WordPress - настройка ЧПУ ======
 +
 +  * [[http://winginx.com/ru/docs/rewrites|ЧПУ без .htaccess]]
 +
 +**WordPress** - настройка **ЧПУ** (Человеку Понятный Урл([[URL]])).
 +<note warning>Прежде всего перед настройкой ЧПУ в [[Apache]] включите [[mod_rewrite]].</note>
 +
 +Настройку ЧПУ нужно выполнять сразу после установки wordpress, иначе позже дополнительно придётся настраивать перенаправление на уже проиндексированные страницы, c некрасивым URL. В административной части переходим в **Параметры->Постоянные ссылки** и мы можем там выбрать из нескольких предустановленных вариантов ЧПУ или в разделе "Произвольно" создать свой новый. Например: <file>
 +/%category%/%postname%.html
 +</file>или если вы хотите, чтобы адреса постов были без указания на категорию, тогда укажите:<file>
 +/%postname%/
 +</file>**Рекомендуется указывать категорию и не ставить слеш в конце:**<file>
 +/%category%/%postname%
 +</file> 
 +
 +<note>Символы .html (или .htm) в конце можно как указывать, так и не указывать — это больше дело личных предпочтений.</note>Эти действия приводят к созданию файла [[htaccess|.htaccess]] в корне вашего сайта (в начальной поставке Wordpress такого файла нет).
 +
 +<note>Нужно установить плагин для того, чтобы адреса с кириллицы переводились на латиницу (а лучше изначально адреса задавать в латинице), например: RusToLat, Cyr-To-Lat, на 2017 год хорошо работает плагин [[https://ru.wordpress.org/plugins/cyr3lat/|Cyr to Lat enhanced]].</note>
 +
 +===== WordPress .htaccess правильный 301 редирект =====
 +
 +В интернете, да и на этом сайте, много информации о 301 редиректе для сайтов. Но все они зачастую страдают одной ошибкой, советчики не описывают полную конфигурацию своего сервера, что делает невозможным аналогичную настройку.
 +
 +Ниже приводится код с работающего сервера, в нем настроена
 +  - Переадресация [[url_redirection#redirekts_www_na_bez_www_i_naoborot|301 редирект: с WWW]]
 +  - [[url_redirection#perenapravlenie_http_zaprosov_na_https|Перенаправление HTTP запросов на HTTPS]]
 +  - Последние строки решают проблему дублей слешей, вида https://example.com////test
 +
 +<file php>
 +RewriteEngine On
 +Options +FollowSymLinks
 +
 +RewriteCond %{HTTPS} !=on
 +RewriteCond %{HTTP_HOST} ^www.example\.com$ [NC]
 +RewriteRule ^(.*)$ https://example.com/$1 [R=301,L]
 +
 +RewriteCond %{HTTPS} !=on
 +RewriteRule ^(.*)$ https://example.com/$1 [R=301,L]
 +
 +# BEGIN WordPress
 +<IfModule mod_rewrite.c>
 +RewriteEngine On
 +RewriteBase /
 +RewriteRule ^index\.php$ - [L]
 +RewriteCond %{REQUEST_FILENAME} !-f
 +RewriteCond %{REQUEST_FILENAME} !-d
 +RewriteRule . /index.php [L]
 +RewriteCond %{REQUEST_URI} ^(.*)/{2,}(.*)$
 +RewriteRule . %1/%2 [R=301,L]
 +</IfModule>
 +# END WordPress
 +</file>
 +
 +
 +====== WordPress. Восстановить пароль администратора ======
 +
 +  * **Сбросить пароль администратора WordPress с помощью FTP**. Для этого необходимо войти на ваш сайт по [[FTP]] и загрузить файл functions.php вашей активной темы. Изменить файл и добавить в него  код в самом начале, после первого <PHP?:<file>
 +wp_set_password ('newpassword', 1);
 +</file>
 +Где newpassword —  новый пароль,  а «1″ номер идентификатора пользователя в таблице wp_users. Загружаем измененный файл на ваш сайт и заходим. После того как возможность заходить в админку восстановлена, необходимо удалить установленный код, иначе он будет изменять пароль на newpassword при каждой загрузке страницы.
 +
 +  * **Сменить пароль администратора с помощью SQL**. Для восстановления пароля с помощью [[SQL]] необходимо выполнить следующий запрос:<file>
 +UPDATE wp_users SET user_pass = MD5('newpassword') WHERE ID=1;
 +</file> И не забывайте менять префикс wp_ на тот, которым пользуетесь вы сами. Этим запросом мы меняем шифрованный [[MD5]] пароль в таблице wp_users для пользователя с ID=1 на «newpassword». Можно сменить пароль и для любого другого пользователя на сайте, достаточно поменять в запросе ID на нужный. У администратора ID пользователя всегда 1. Можно также использовать запрос и с указанием конкретного логина:<file>
 +UPDATE wp_users SET user_pass = MD5('newpassword') WHERE user_login = 'admin';
 +</file>
 +  * **Восстановить пароль WordPress через email**. Если вы знаете логин и е-мейл администратора, то востановить пароль  можно с помощью формы Забыли пароль? Способ самый простой, но на локальном сервере это не сработает.
 +====== WordPress. Обновление ======
 +
 +  - Сделать Бекап как самого сайта так и БД, любым удобным вам способом
 +  - Выключить все плагины
 +  - Удалить директории wp-admin и wp-includes с вашего сайта
 +  - Может потребоваться удалить файл .htaccess
 +  - Сравнить (и если требуется изменить) содержимое старого файла wp-config.php с новым wp-config-sample.php, так как в новом файле wp-config-sample.php могли появиться новые директивы или удалены старые.
 +  - Скопировать все файлы скачанного WordPress новой версии, поверх старой версии WordPress
 +  - Запускаем обновление http://example.com/wp-admin/upgrade.php
 +
 +<note tip>Для обновления плагинов может потребоваться включить параметр define('FS_METHOD', 'direct');</note>
 +
 +====== WordPress. xmlrpc.php wp-config.php wp-login.php ======
 +
 +**Файл xmlrpc.php** используется только для удаленной публикации статей на вашем сайте. Если вы его не используете доступ к нему должен быть закрыт. Для Apache <file bash>
 +# Block XML-RPC requests
 +<Files xmlrpc.php>
 +Order Allow,Deny
 +Deny from all
 +</Files>
 +</file>Для Nginx<file php>
 +location = /xmlrpc.php {
 +log_not_found off;
 +# access_log off;
 +deny all;
 +}
 +</file>
 +
 +**Файл wp-config.php** можно смело закрыть доступ<file bash>
 +location = /wp-config.php {
 +log_not_found off;
 +# access_log off;
 +deny all;
 +}
 +</file>
 +**Файл wp-login.php** в зависимости от задач, может быть закрыт полностью по аналогии с xmlrpc.php или открыт только для определенных. Для Apache<file bash>
 +<Files xmlrpc.php>
 +Order Deny,Allow
 +Deny from all
 +Allow from xxx.xxx.xxx.xxx
 +</Files>
 +</file>
 +
 +====== WordPress. Смена siteurl ======
 +
 +**Данная задача возникает**, если вам потребовалось поднять копию WordPress сайта под другом имени домена.
 +
 +Переменная siteurl в WordPress отвечает за формирование относительных ссылок. Значение данной переменной записывается в БД, поэтому и изменить её можно путем редактирования БД и/или модификации файла wp-config.php.
 +
 +  * **Модификация wp-config.php**. Для решения добавьте в файл wp-config.php строки:<file php>
 +define('WP_SITEURL', 'http://example.com');
 +define('WP_HOME', 'http://example.com');
 +</file>где example.com замените не название сайта.
 +  * **Модификация параметра в БД.** В таблице wp_options находим значение переменой siteurl и меняем его на нужное нам.
 +
 +====== WordPress. Использование Cookie ======
 +
 +  * [[Cookie]]
 +
 +  * Установить(Set a Cookie in WordPress).
 +<file php>
 +add_action('init', function() {
 +    if (!isset($_COOKIE['my-name'])) {
 +        setcookie( 'my-name', 'my-value', strtotime('+1 day'), COOKIEPATH, COOKIE_DOMAIN   );
 +    }
 +});
 +</file>
 +  * Показать все куки (Get a Cookie in WordPress).
 +<file php>
 +add_action( 'wp_head', 'my_getcookie' );
 +function my_getcookie() {
 +$alert = isset( $_COOKIE['my-name'] ) ? $_COOKIE['my-name'] : 'not set';
 + echo "<script type='text/javascript'>alert('$alert')</script>";
 + echo "<script type='text/javascript'>alert( document.cookie );</script>";
 +}
 +</file>
 +  * Удалить (Delete or Unset a Cookie in WordPress).
 +<file php>
 +add_action( 'init', 'my_deletecookie' );
 +function my_deletecookie() {
 +setcookie( 'my-name', '', strtotime('+1 day'), COOKIEPATH, COOKIE_DOMAIN );
 +}
 +</file>
 +====== WordPress. Nginx + Apache ======
 +Рабочие примеры для WordPress.<file bash nginx.example.net>
 +server {
 +
 +server_name example.net www.example.net;
 +listen 80;
 +root /var/www/example.net/public_www;
 +index index.php index.html index.htm;
 +error_log /var/log/nginx/example.net.error.log info;
 +access_log /var/log/nginx/example.net.access.log;
 +
 +proxy_set_header X-Real-IP  $remote_addr;
 +proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 +proxy_set_header Host $host;
 +
 +location = /favicon.ico {
 +log_not_found off;
 +access_log off;
 +}
 +
 +location = /xmlrpc.php {
 +log_not_found off;
 +# access_log off;
 +deny all;
 +}
 +
 +location ~ /\.ht {
 +deny all;
 +}
 +
 +location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
 +# expires max; expires 1w;
 +expires 14d;
 +# log_not_found off;
 +# access_log off;
 +}
 +
 +location / {
 +proxy_pass http://127.0.0.1:8080/;
 +}
 +}
 +</file><file bash apache.example.net>
 +<VirtualHost 127.0.0.1:8080>
 +
 +ServerAdmin webmaster@example.net
 +ServerName example.net
 +ServerAlias www.example.net
 +
 +ServerSignature Off
 +
 +<IfModule mpm_itk_module>
 +    AssignUserID webluxor webluxor
 +</IfModule>
 +
 +php_admin_value open_basedir "/var/www/example.net/public_www:/tmp"
 +
 +DirectoryIndex index.php index.html
 +
 +DocumentRoot "/var/www/example.net/public_www"
 +<Directory "/var/www/example.net/public_www/">
 +    Options FollowSymLinks -Indexes
 +# for mod_rewrite changed from All to FileInfo and turn on Options FollowSymLinks
 +#       AllowOverride All
 +    AllowOverride FileInfo Limit
 +    Order allow,deny
 +    Allow from all
 +
 +</Directory>
 +
 +        ErrorLog /var/log/apache2/example.net.error.log
 +        LogLevel warn
 +        CustomLog /var/log/apache2/example.net.access.log combined
 +
 +</VirtualHost>
 +</file>
 +
 +===== WordPress: Cделать отступы в абзацах =====
 +
 +На сайтах сделанных на WordPress нет отступов первой строчки абзацев. Для добавления абзаца изменим файл style.css нашей темы, где класс entry-content сявляется оберткой для постов. Название класса может быть другим для вашей темы, узнайте его исследовав элемент вашей страницы.
 +
 +<file css>
 +.entry-content p {
 +text-indent: 2em;
 +}
 +</file>
 +
 +===== WordPress: подключить Google Analytics и/или Яндекс Метрику =====
 +
 +
 +Для подключения [[SEO|Google Analytics]] к WordPress можно использовать специальные плагины, например
 +  * [[https://wordpress.org/plugins/google-analytics-for-wordpress/|The Google Analytics for WordPress by MonsterInsights]]
 +  * [[https://wordpress.org/plugins/google-analyticator/|Google Analyticator]]
 +
 +**Альтернативный вариант.** Пишем код PHP для вставки в файл functions.php вашей активной темы<file php>
 +function my_google_analytics() {
 +    echo <<<'EOT'
 +// Ваш код Google Analytics
 +EOT;
 +}
 +add_action('wp_head', 'my_google_analytics');
 +</file>
 +<note>Всем **настоятельно рекомендую использовать GTM Google Tag Manager** (tagmanager.google.com) для вставки GA, Метрики и других сторонних скриптов.</note>
 +
 +===== WordPress: подключить файл CSS =====
 +
 +Задача подключить дополнительный файл CSS к текущей теме Wordpress. Код вставляем в файл темы function.php. Обязательно до функции wp_head() которая вызывается в header.php В моем случае мне нужно было изменить CSS стиль тега table. <file css>
 +tr:nth-child(even) {background: #yellow}
 +tr:nth-child(odd) { background-color: #FFCDD2 !important}
 +caption {background: #FFCDD2; }
 +</file>
 +
 +
 +<file php>
 +function add_styles_scripts(){
 +   wp_enqueue_style( 'table13-style', get_template_directory_uri() .
 +    '/css/table13.css' );
 +}
 +
 +add_action( 'wp_enqueue_scripts', 'add_styles_scripts' );
 +</file>
 +
 +===== Как автоматически заполнять поля alt, caption и description при загрузке файлов? =====
 +
 +Источник кода: [[http://www.wphook.ru/media/auto-alt-title-caption.html]]. Я лишь добавил одну строку для моего удобства.
 +
 +Автозаполнение атрибута alt и всех остальных полей в Wordpress при загрузке медиафайла на сайт, на основе имени медиафайла. 
 +
 +Код следует добавить в файл functions.php в конец файла.
 +
 +<file php>
 +//автозаполнение полей при вставке медиафайлов start
 +function wph_auto_alt_title_caption($attachment_ID) {
 + 
 +    $filename   = $_REQUEST['name'];
 +    $withoutExt = preg_replace('/\\.[^.\\s]{3,4}$/', '', $filename);
 +    $withoutExt = str_replace(array('-','_'), ' ', $withoutExt);
 + 
 +    $my_post = array(
 +        'ID'           => $attachment_ID,
 +        'post_excerpt' => $withoutExt,  //подпись
 +        'post_content' => $withoutExt,  //описание
 +    );
 +    wp_update_post($my_post);
 + 
 +    //атрибут alt
 +    update_post_meta($attachment_ID, '_wp_attachment_image_alt', $withoutExt);
 +}
 +add_action('add_attachment', 'wph_auto_alt_title_caption');
 +//автозаполнение полей при вставке медиафайлов end
 +</file>
 +===== Как автоматически добавить alt, title к загруженным картинкам Wordpress WooCommerce? =====
 +На сайте WordPress можно самостоятельно прописать alt для каждой загруженной картинки. Но что делать, если изображений много, и Вы часто забываете это сделать? Способы автоматического добавления тегов alt и title название текущего товара в Woocommerce.
 +
 +**1 способ. (использую)** Наиболее быстрым и корректным способом является использование многофункционального [[https://wow2.top/clearfy-pro/|плагина Clearfy Pro]], который автоматически заполнит пустой Alt-тег в изображениях на Вашем сайте. Для этого в настройках Clearfy Pro перейти на вкладку SEO передвинуть вправо ползунок напротив опции Автоматически проставить alt. Внимание! Для картинок товара [[#woocommerce_storefront|WooCommerce]] alt добавлен НЕ будет, а только для картинок в тексте.
 +
 +  * [[https://wpschool.ru/auto-set-alt/|Как автоматически добавить атрибут Alt в WordPress]]
 +  * [[http://info-effect.ru/dobavit-atribut-alt-dlya-vsex-izobrazhenij-wordpress-avtomaticheski.html|Добавить атрибут alt для всех изображений wordpress автоматически !]]
 +
 +**2 способ.** Плагин [[https://ru.wordpress.org/plugins/seo-optimized-images/|Seo Optmized Images]] поддерживает Wordpress WooCommerce но только в платной версии.
 +
 +**3 способ.** Прописать код в function.php дочерней темы для автоматического добавления тегов alt и title текущего товара в Woocommerce в теле товарной карточки. Для картинок товара добавлен НЕ будет.<file php>
 +// alt title for images
 +add_filter('wp_get_attachment_image_attributes', 'change_attachement_image_attributes', 20, 2);
 +function change_attachement_image_attributes($attr, $attachment) {
 +    global $post;
 +    if ($post->post_type == 'product') {
 +        $title = $post->post_title;
 +        $attr['alt'] = $title;
 +        $attr['title'] = $title;
 +    }
 +    return $attr;
 +}
 +</file>
 +
 +===== Как убрать префикс category из URL рубрик WordPress =====
 +{{ :udalit_kategorii.jpg?nolink&400 |}}
 +
 +**Преимущества для SEO если убрать category в wordpress**:
 +  - Со ссылки убирается не информативная для поискового бота часть - category.
 +  - URL становятся короче на 9 символов, вместе со словом выпадает один слеш "/" - это хорошо для SEO, ведь есть тенденции до уменьшения длины ссылки.
 +  - Больше шансов что бот захватит и подсветит нужную часть ссылки в выдаче поисковика.
 +
 +Ранее, для того чтобы убрать category URL в WordPress я использовал плагин Remove Category URL By Valerio Souza, Сreativemotion, но на 2024 это плагин не поддерживается.
 +
 +Если у вас установлен плагин [[yoast_seo|Yoast SEO]] вы можете отключить показ в URL префикса category. Для этого в настройка плагина перейдите в настройки рубрики и отключите параметр "Сохраните префикс категорий в ярлыке".
 +
 +{{ ::yoast_seo_otkljuchit_prefiks_kategorij_v_url.jpg?nolink |}}
 +
 +
 +===== Интернационализация i18n / локализация WordPress =====
 +
 +Обзор возможностей как для интернационализации, так и для локализации [[i18n|i18n]] при разработке с Гутенбергом Wordpress.
 +
 +==== Локализации PHP Wordpress ====
 +<file>
 +__( 'Hello World', 'my-text-domain' ): Перевести определенную строку
 +_x( 'Block', 'noun', 'my-text-domain' ): Перевести определенную строку с некоторым дополнительным контекстом.
 +_e( 'Hello World', 'my-text-domain' ): Перевести и напечатать определенную строку.
 +esc_html__( 'Hello World', 'my-text-domain' ): Перевести определенную строку и избежать ее для безопасного использования в выводе HTML.
 +esc_html_e( 'Hello World', 'my-text-domain' )Перевести определенную строку, избежать ее для безопасного использования в выводе HTML и распечатать.
 +_n( '%s Comment', '%s Comments', $number, 'my-text-domain' ): Переведите и получите форму единственного или множественного числа на основе предоставленного номера. 
 +Обычно используется в сочетании с sprintf()и number_format_i18n().
 +</file>
 +
 +==== Локализации JavaScript Wordpress ====
 +Исторически wp_localize_script()он использовался для помещения данных PHP на стороне сервера в правильно экранированный нативный объект JavaScript.
 +
 +Новый редактор вводит новый подход к переводу строк для редактора через новый пакет под названием @wordpress/i18n.
 +
 +Новый пакет скриптов зарегистрирован в WordPress как wp-i18nи должен быть объявлен как зависимость во время wp_register_script()и импортирован как глобальный объект Window как wp.i18n.
 +
 +В зависимости от вашего рабочего процесса разработчика, вы можете использовать wp i18n make-potкоманду [[WP-CLI|WP-CLI]] или инструмент сборки для вызова Babel @wordpress/babel-plugin-makepotдля создания необходимого файла перевода. Последний подход интегрируется с Babel для извлечения методов [[i18n|i18n]].
 +
 +Общие методы в wp.i18n:
 +<file>
 +setLocaleData( data: Object, domain: string ): Создает новый экземпляр I18N, предоставляющий данные перевода для домена.
 +__( 'Hello World', 'my-text-domain' ): Перевести определенную строку
 +_n( '%s Comment', '%s Comments', numberOfComments, 'my-text-domain' ): Переведите и получите форму единственного или множественного числа на основе предоставленного номера.
 +_x( 'Default', 'block style', 'my-text-domain' ): Перевести определенную строку с некоторым дополнительным контекстом.
 +sprintf(): Порт JavaScript функции PHP с тем же именем.
 +</file>
 +===== Как включить отладку (DEBUG) в WordPress =====
 +Источник: https://ru.wordpress.org/support/article/debugging-in-wordpress/
 +
 +WP_DEBUG это константа PHP  используемая для установки режима отладки в WordPress. По умолчанию она имеет значение «false», но может быть установлена как «true» в файле конфигурации wp-config.php на сайтах, на которых проводится отладка.
 +
 +<file>
 +define( 'WP_DEBUG', true );
 +define( 'WP_DEBUG', false );
 +</file>
 +Сообщения с ошибками появятся в браузере. Если вы включите режим debug на живом сайте, то посетители увидят ошибки в верхней части на всех страницах сайта.
 +<file>
 +// Включить журнал /wp-content/debug.log
 +define( 'WP_DEBUG_LOG', true );
 +-или-
 +define( 'WP_DEBUG_LOG', '/tmp/wp-errors.log' );
 +</file>
 +
 +Читайте также:
 +  * [[облако меток WordPress]]

📌 Удобный подбор VPS по параметрам доступен на DIEGfinder.com - официальном инструменте проекта DIEG. Это часть единой экосистемы, созданной для того, чтобы помочь быстро найти подходящий VPS/VDS сервер для любых задач хостинга.

📌 Для тестирования скриптов, установщиков VPN и Python-ботов рекомендуем использовать надежные VPS на короткий срок. Подробнее о быстрой аренде VPS для экспериментов - читайте здесь.

💥 Подпишись в Телеграм 💥 и задай вопрос по сайтам и хостингам бесплатно!