Архив рубрики: WordPress

Обновление php до верси 7.4.9 на UBUNTU server 18.04 LTS с Apache 2

Для начала вы можете проверить версию php в ваших репах




Устанавливаем новую версию php:




sudo apt-get install php7.4
sudo apt-get install libapache2-mod-php7.4
sudo apt-get install php7.4-mysql
sudo apt-get install php7.4-curl
sudo apt-get install php7.4-gd
sudo apt-get install php7.4-imagick
sudo apt-get install php7.4-snmp
sudo apt-get install php7.4-imap
sudo apt-get install php7.4-recode
sudo apt-get install php7.4-zip
sudo apt-get install php-pear
sudo apt-get install php7.4-memcache
sudo apt-get install libapache2-mod-php7.4
sudo apt-get install php7.4-bcmath 




После этого нужно включить новую версию модуля apache:




a2dismod php7.3
a2enmod php7.4
service apache2 restart




Ну и в самом конце не мешало бы переместить свои настройки php




cp /etc/php/7.3/apache2/php.ini /etc/php/7.4/apache2/php.ini 
service apache2 restart






2020-09-02T20:46:40
wordpress

[РЕШЕНО] ошибка “data-vocabulary.org” в WordPress на Linux

Сегодня в статье разберемся как можно исправить ошибку “data-vocabulary.org” в WordPress. Google анонсировали, отключение поддержки словаря data-vocabulary. Из-за этого многие в консоли получают ошибки, связанные с этим. Пока что – это предупреждения, чтобы успеть с этим что-то сделать. Но в будущем может оказаться и серьезной ошибкой для поисковых роботов от Google. Поэтому давайте разберемся как исправить ошибку “data-vocabulary.org” в WordPress.




Для начала нам необходимо найти файлы где присутствует надпись разметки data-vocabulary.org.




Для этого открываем терминал и набираем следующий текст:




grep -R --color data-vocabulary.org /var/www/




Данная команда рекурсивно пробежится по всем категориям и найдет в файлах нашу заветную фразу data-vocabulary.org. Вот пример вывода:




/var/www/public_html/wp-content/mythemes/template-parts/content-single.php:<div class="breadcrumb" xmlns:v="http://rdf.data-vocabulary.org/#"><?php mytheme_breadcrumb(); ?></div> 




У вас вывод конечно же будет отличаться, но суть остается та же. Из вывода видно какой файл необходимо открыть на редактирование. В файле необходимо произвести замену data-vocabulary.org на schema.org




Меняем микроразметку со словаря data-vocabulary на schema.org




Вот парочка примеров:




Новый вариант разметки со словарём schema.org

<?php mytheme_set_post_views( get_the_ID() ); ?>
<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
        <div class="breadcrumb" xmlns:v="http://schema.org/BreadcrumbList"><?php mytheme_breadcrumb(); ?></div>
        <header class="entry-header">
                <?php the_title( '<h1 class="entry-title">', '</h1>' ); ?>
...




или вот.




Старый вариант разметки по data-vocabulary.org

<div class="breadcrumbs">
  <span itemscope itemtype="http://data-vocabulary.org/Breadcrumb">
    <a href="https://obu4alka.ru/" itemprop="url">
      <span itemprop="title">Obu4alka.ru</span>
    </a> ›
    <span itemprop="child" itemscope itemtype="http://data-vocabulary.org/Breadcrumb">
      <a href="https://obu4alka.ru/home" itemprop="url">
        <span itemprop="title">Главная</span>
      </a> ›
      <span itemprop="child" itemscope itemtype="http://data-vocabulary.org/Breadcrumb">
        <a href="https://obu4alka.ru/home/seo/" itemprop="url">
          <span itemprop="title">SEO</span>
        </a>
      </span>
    </span>
  </span>
</div>




Новый вариант разметки со словарём schema.org

<div class="breadcrumbs">
  <span itemscope itemtype="http://schema.org/BreadcrumbList">
    <span itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
      <a href="https://obu4alka.ru/" itemprop="item">
        <span itemprop="name">Obu4alka.ru</span>
      </a>
      <meta itemprop="position" content="1" />
    </span> ›
    <span itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
      <a href="https://obu4alka.ru/home" itemprop="item">
        <span itemprop="name">Главная</span>
      </a>
      <meta itemprop="position" content="2" />
    </span> ›
    <span itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
      <a href="https://obu4alka.ru/home/seo/" itemprop="item">
        <span itemprop="name">SEO</span>
      </a>
      <meta itemprop="position" content="3" />
    </span>
  </span>
</div>



[endtxt]




RSS



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


2020-07-07T07:00:00
WEB

Woocommerce: как вывести цену товара в title страницы

Добавьте в шаблон метатег %%cf__price%%

Настройки SEO карточки товара
Настройки SEO карточки товара

В карточке товара цена будет выглядеть, как %%cf__price%%. Но на сайте и в поисковой система будет выводиться в нормальном виде.

Шаблон в карточке товара
Шаблон в карточке товара

В исходном коде всё выводится, как положено.

Сообщение Woocommerce: как вывести цену товара в title страницы появились сначала на Веб-студия Юсота.


Source: usota.ru seo

Yoast SEO — список переменных

Как создать свою переменную

Допустим мы хотим создать свою переменную writer, которая находится в атрибуте товара. Конечно, можно использовать переменную %%ct_pa_<product-attribute-slug>%%, но для примера рассмотрим принцип создание своей переменной.

add_action('wpseo_register_extra_replacements', 'register_custom_yoast_variables');
function get_writer() {
    global $product;
	$writer = $product->get_attribute( 'pa_writer' );
    return $writer;
}
function register_custom_yoast_variables() {
    wpseo_register_var_replacement('%%writer%%', 'get_writer', 'advanced', 'Значение атрибута товара "Автор"');
}

Основные переменные

НазваниеПеременная ENGПеременная RUSОписание
Дата%%date%%ДатаДату публикации, например «20.02.2020».
Название%%title%%НазваниеTitle — название страницы.
Название родительской страницы%%parent_title%%Заголовок родителяНазвание родительской страницы. Если у текущей страницы нет родительской, выведет текст «(нет родительской)».
Название архива%%archive_title%%Название архива, например: «Рубрика: Новости» или «Категория: Товары для дачи».
Название сайта%%sitename%%Название сайтаНазвание сайта.
Краткое описание сайта%%sitedesc%%ПодзаголовокКраткое описание сайта.
Отрывок%%excerpt%%ОтрывокВыводит отрывок из записи, если есть. Есть нет — выводит отрывок, который генерируется автоматически.
Только отрывок%%excerpt_only%%Только отрывокВыводит отрывок из записи, если есть. Если нет — ничего не выводит.
Метка%%tag%%Выводится только в категории товаров. Выводит название метки, которая есть у товаров в этой категории.
Рубрика%%category%%РубрикаВыводит название рубрики. Несколько рубрик выводит через запятую.
Основная рубрика%%primary_category%%Основная рубрикаОсновная рубрика.
Описание рубрики%%category_description%%Описание рубрикиВыводит описание рубрики или категории.
Описание метки%%tag_description%%Описание меткиОписание метки
Название таксономии%%term_title%%Название таксономии
Описание таксономии%%term_description%%Описание элементаОписание таксономии
Поисковая фраза%%searchphrase%%Выводит поисковую фразу на странице поиска
Разделитель%%sep%%РазделительРазделитель, определенный в теге wp_title() вашей темы. Как правило это дефис «-»

Расширенные переменные

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

ЭтикеткаПеременнаяОписание
Тип столба (сингулярный)%%pt_single%%Заменено на одну метку типа контента
Тип столба (множественное число)%%pt_plural%%Заменено на метку типа контента множественного числа
Модифицированный%%modified%%Заменено на сообщение / страницу измененное время
ID%%id%%Заменено на сообщение/идентификатор страницы
Имя%%name%%Заменено на сообщение / страницу автора ‘ nicename’
Описание пользователя%%user_description%%Заменено на сообщение / страницу ” биографические данные автора’
Номер страницы%%page%%Заменяется текущим номером страницы с контекстом (т. е. Страница 2 из 4)
Pagetotal%%pagetotal%%Заменено на текущую страницу итого
Pagenumber%%pagenumber%%Заменяется на текущий номер страницы
Подпись%%caption%%Заголовок приложения
Ключевое слово Focus%%focuskw%%Заменена ключевая фраза фокусировки сообщений
Term404%%term404%%Заменен на пули, которые вызвали 404
<custom-field-name> (настраиваемое поле)%%cf_<custom-field-name>%%Заменено значением настраиваемого поля posts. Удалите < >
<custom-tax-name> (пользовательская таксономия)%%ct_<custom-tax-name>%%Заменено на посты custom taxonomies, разделенные запятой. Удалите < >
< custom-tax-name> описание (пользовательская таксономия)%%ct_desc_<custom-tax-name>%%Заменено пользовательским описанием таксономий. Удалите < >

Пользовательские переменные

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

Настраиваемых поля

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

Пользовательские имена полей можно найти с помощью следующих действий. Если у вас есть имя настраиваемого поля, вы его замените &lt;custom-field-name&gt;. Если бы мое пользовательское поле было вызвано myfield, пользовательская переменная была бы %%cf_myfield%%. Если пользовательское поле начинается с подчеркивания, например_anotherfield, пользовательская переменная должна включать подчеркивание следующим образом:%%cf__anotherfield%%.

Пользовательские таксономии

Пользовательские имена таксономий можно найти в адресной строке браузера при просмотре или редактировании элемента.

Пример: edit-tags.php?taxonomy=mycategory&post_type=myposttype

В приведенном выше примере мы редактируем пользовательскую таксономию, называемую mycategory, под пользовательским типом записи myposttype . Если бы я хотел вывести список категорий, назначенных странице myposttype, я бы использовал %%ct_mycategory%%. Если бы я хотел вывести описание отдельной mycategory на странице архива категорий, я бы использовал %%ct_desc_mycategory%%.

Переменные WooCommerce

Ниже приведены некоторые переменные, которые вы можете использовать с WooCommerce. Если конкретная переменная, которую вы ищете, не указана ниже, пожалуйста, используйте информацию о пользовательской переменной выше, чтобы найти нужную переменную.

%%ct_product_cat%%Категории товара (через запятую)
%%ct_product_tag%%Метки товара (через запятую)
%%ct_pa_<product-attribute-slug>%%Атрибуты товара (через запятую). Удалите <>, так как они не нужны. Прим.: возможно, что в предварительном просмотре вы не увидите изменений. Но переменная работает, это можно увидеть в исходном коде страницы.

Yoast WooCommerce SEO переменные

Если у вас есть плагин Yoast WooCommerce SEO, эти дополнительные переменные доступны. Плагин платный 😉

%%wc_shortdesc%%Краткое описание (Доступно по состоянию на Yoast WooCommerce SEO 6.2)
%%wc_sku%%Артикул товара. (Доступно по состоянию на Yoast WooCommerce SEO 6.2)
%%wc_brand%%Название бренда. Работает с плагинами “WooCommerce Brands” и “Perfect WooCommerce Brands“. (Доступно по состоянию на Yoast WooCommerce SEO 6.2)
%%wc_price%%Цена товара. (Доступно по состоянию на Yoast WooCommerce SEO 6.2)

Устаревшие переменные

Начиная с версии v7. 7 — Yoast убрали эти переменные, поскольку не видят в них смысла и рекомендуют их не использовать. Но они работают (проверял 1 июня 2020 г.).

%%userid%%Идентификатор автора поста / страницы
%%currenttime%%Текущее время
%%currentdate%%Текущая дата
%%currentday%%Текущий день
%%currentmonth%%Текущий месяц
%%currentyear%%Текущий год

Переменные по умолчанию

Если вы хотите сбросить переменные шаблона заголовка SEO обратно к значениям по умолчанию, используйте следующее переменные. Для дескрипшена значение по умолчанию является пустым. Значения по умолчанию задаются в разделе «Отображение в поисковой выдаче».

%%title%% %%page%% %%sep%% %%sitename%%%Записи, страницы, товары и пользовательские типы записей
%%pt_plural%% Archive %%page%% %%sep%% %%sitename%%Записи, товары и другие пользовательские страницы архивов
%%term_title%% Archives %%page%% %%sep%% %%sitename%%Таксономии
Вы искали %%searchphrase%% %%page%% %%sep%% %%sitename%%Страница результатов поиска
Страница не найдена %%sep%% %%sitename%%404 страница
%%name%%, автор %%sitename%% %%page%%Архивы авторов
%%date%% %%page%% %%sep%% %%sitename%%Архивы дат
The post %%POSTLINK%% appeared first on %%BLOGLINK%%.RSS-канал
%%sitename%% %%page%% %%sep%% %%sitedesc%%Шаблон главной

Сообщение Yoast SEO — список переменных появились сначала на Веб-студия Юсота.


Source: usota.ru seo

Как можно отобразить дату последнего изменения поста на WordPress?

Сегодня в статье разберемся как можно отобразить дату последнего изменения поста на CMS WordPress.




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




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




  • через SQL скрипт;
  • вручную через phpMyAdmin с выгрузкой дат из базы;
  • с использованием TextKit (программа позволяет обновлять и редактировать большие базы данных);
  • различные скрипты, которые располагаются в корне сайта; и работают при запуске из строки браузера;
  • в ручном режиме из административной части сайта;
  • автоматическое обновление даты публикации в WordPress.




Для чего нужно показывать дату последнего обновления?




Большинство
тем оформления WordPress показывают дату публикации поста. Это
стандартная функция, которая подходит для всех блогов.




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




Давайте посмотрим, как можно отобразить дату последнего изменения поста на WordPress.




Дата последнего изменения поста на WordPress




Чтобы выводить дату последнего изменения поста перед началом текста, скопируйте и добавьте этот код в ваш файл functions.php текущей темы оформления в самый конец файла:




<?php
function wpb_last_updated_date( $content ) {
$u_time = get_the_time('U'); 
$u_modified_time = get_the_modified_time('U'); 
if ($u_modified_time >= $u_time + 86400) { 
$updated_date = get_the_modified_time('d.m.Y');
$updated_time = get_the_modified_time('h:i'); 
$custom_content .= '<p class="last-updated">Last updated on '. $updated_date . ' at '. $updated_time .'</p>';  
} 
$custom_content .= $content;
return $custom_content;
}
add_filter( 'the_content', 'wpb_last_updated_date' );
?>




Этот код выполняет проверку и сравнивает 2 даты: дату публикации и дату последнего изменения. Если эти даты не совпадают, тогда код выводит дату последнего изменения перед началом контента записи.




Вот еще один пример для отображения даты изменения поста. Данный код необходимо вставить в файл single.php или его аналоги, например content-single.php.




<div>Последнее изменение поста: <?php the_modified_date('F j Y года'); ?></div><br />




Место в ставки подбираете сами в зависимости от вашей темы. В моем случае я вставил перед функцией




<?php the_content(); ?>




Также можете изменить дату публикации вашего поста еще одним способом , для этого необходимо вставить вот такой код в файл function.php вашей темы.




<?php
function reset_post_date_wpse_121565($data,$postarr) {
  // var_dump($data,$postarr); die; // debug
  $data['post_date'] = $data['post_modified'];
  $data['post_date_gmt'] = $data['post_modified_gmt'];
  return $data;
}
add_filter('wp_insert_post_data','reset_post_date_wpse_121565',99,2);
?>




Примечание: Рекомендую запомнить, то что при каждом нажатии на кнопку «Обновить» в записи, будет обновляться и дата публикации вашего поста.



[endtxt]




RSS



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


2020-05-01T12:09:11
WEB

Как настроить WebP Express в WordPress на Nginx

Сегодня поговорим о том, как можно настроить WebP Express в WordPress на Nginx и PHP-FPM.




Плагин WebP Express дает возможность на CSS WordPress организовать поддержку изображение с расширением *.webp






Сам плагин легко устанавливается из консоли WordPress, а вот его настройка в связке с Nginx вызывает затруднение. Давайте пройдем все этапы по настройке WebP Express вместе с вами. И разберемся как можно настроить WebP Express в CMS WordPress с WEB-сервером Nginx.




Сам процесс установки в данной статье я описывать не буду. Думаю и сами разберетесь. Приступим сразу к его настройке.




Настройка WebP Express в WordPress на Nginx



WebP Express



  • Operation mode — устанавливаем в положение Varied image responses.



  • Scope — устанавливаем в Uploads and themes, данный параметр отвечает за преобразование файлов в данных папках.



  • Images types to work on — устанавливаем в Both jpeg and pngs, данный параметр отвечает за то, какие расширения файлов преобразовывать в WebP.



  • Destination folder — тут выбираем в какой папке хранить уже преобразованные файлы. Есть два варианта: оставить в той же или помещать в другую.



  • Destination structure — если вы выбрали перемещать преобразованные файлы в другую папку, то в данном пунке уже выбираем название папки: image-roots или document-root.



  • Cache control header — можно установить кэш для изображений.




Переходим к следующей категории:



WebP Express



Данная категория помещает необходимые правила в файл .htaccess. Данные правила необходимы только если у Вас установлен Apache. Но на всякий случай я их оставил.




WebP Express




Здесь настраиваются правила для конвертации изображений в формат WebP. Оставляем без изменений. И так все норм.




WebP Express




Здесь указываются методы конвертирования для вашей системы.




Если у вас отключен метод cwebp, а при прохождении теста выдает: No cwebp binaries could be executed (permission denied for user: "www-data"). Значит у вас нехватает утилиты cwebp. Для установки в Ubuntu/Debian в терминале набираем следующее:




sudo apt install cwebp






WebP Express



Тут плагин предлагает с конвертировать все имеющиеся изображения в формат *.webp. А также конвертировать изображения при их загрузке на сайт.



WebP Express



Категория AlterHTML отвечает за автоматическую вставку кода в ваши изображения. Без данного параметра отображение формата *.webp на сайте с WordPress и Nginx работать не будет.




После включения нам так же необходимо вставить код представленный ниже в файл .htaccess в корневой директории сайта:




  # Redirect to existing converted image in cache-dir (if browser supports webp)
  RewriteCond %{HTTP_ACCEPT} image/webp
  RewriteCond %{REQUEST_FILENAME} -f
  RewriteCond %{DOCUMENT_ROOT}/wp-content/webp-express/webp-images/doc-root/wp-content/uploads/$1.$2
.webp -f
  RewriteRule ^/?(.+).(jpe?g|png)$ /wp-content/webp-express/webp-images/doc-root/wp-content/uploads
/$1.$2.webp [NC,T=image/webp,E=EXISTING:1,L]
  # Redirect images to webp-on-demand.php (if browser supports webp)
  RewriteCond %{HTTP_ACCEPT} image/webp
  RewriteCond %{REQUEST_FILENAME} -f
  RewriteRule ^/?(.+).(jpe?g|png)$ /wp-content/plugins/webp-express/wod/webp-on-demand.php?xsource-
rel=xwp-content/uploads/$1.$2&wp-content=wp-content [NC,L]




После данной манипуляции у вас на сайте заработает конвертация и подстановка изображений формата *.webp.



[endtxt]




RSS




2020-04-24T09:35:42
WordPress