2020 — IT Helper

22 декабря 2020

Git - это система контроля версий, позволяющая эффективно управлять историей исходного кода.

Любые изменения которые вносятся в файлы проекта могут быть сохранены с помощью Git. Это позволяет вернуться на более старую версию проекта, а также сравнивать, анализировать и сливать изменения.

Как установить Git

Скачать Git можно тут:
https://git-scm.com/downloads

Запускается через командную строку или терминал с команды git

Основные команды

git init

Позволяет проинициализировать репозиторий в текущей папке

 

git status

Показывает текущий статус

 

git add

Отслеживает изменения файлов

git add index.html — добавляет index.html

git add . — добавляет все файлы

 

git commit

Сохраняет изменения в коммит

git commit -m 'commit message' — создает коммит с сообщением

 

git branch

Работа с ветками в репозитории

git branch — показывает список веток

git branch branch-name — создает новую ветку branch-name

git branch -D branch-name — удаляет ветку branch-name

 

git checkout

Переключается на другую ветку

git checkout branch-name — переключается на последний коммит в ветке branch-name

git checkout -b branch-name — создает и переключается на ветку branch-name

 

git merge

Совмещает текущую ветку с выбранной

git merge branch-name — совмещает текущую ветку с branch-name

 

git config

Конфигурация и параметры git

git config --global user.name — Показывает имя пользователя

git config --global user.name 'new user' — Изменяет имя пользователя

git config --global user.email — Показывает email пользователя

git config --global user.email 'test@mail.ru' — Изменяет email пользователя

 

git push

Заливает текущие локальные коммиты в удаленный репозиторий

 

git pull

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

 

git clone

Клонирует проект с удаленного репозитория

29 сентября 2020

Подключение Git по SSH значительно упрощает работу т.к. не требует дальнейшего ввода логинов и паролей.

Опишу это упрощённо по шагам.

Читать далее →

25 августа 2020

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

Я покажу вам, как добавлять и удалять параметры стиля из блоков.

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

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

https://www.billerickson.net/wp-content/uploads/2019/02/quote-block-styles.jpg

Технически это просто CSS-классы, добавленные в блок. Используя пользовательский интерфейс Block Styles для предварительного просмотра и выбора различных стилей, вашим клиентам не нужно будет запоминать конкретные имена классов.

Вы можете добавить стили блоков к любому типу блоков в Gutenberg: core blocks и custom blocks from plugins. См. мою заметку внизу о поиске имени блока, чтобы вы могли прикрепить к нему свои пользовательские стили.

Добавление скрипта в Редактор

Нам нужно будет создать файл JavaScript в вашей теме или плагине и загрузить его в Редактор блоков. Вы можете использовать такой хук как enqueue_block_editor_assets для загрузки ресурсов в Редактор блоков. Он работает так же, как и при wp_enqueue_scripts загрузке активов во фронтэнд сайта.

Создайте пустой editor.js файл в каталоге /your-theme/assets/js/. Затем добавьте следующее в файл functions.php вашей темы:

/**
 * Gutenberg scripts and styles
 * @link https://www.billerickson.net/block-styles-in-gutenberg/
 */
function be_gutenberg_scripts() {

    wp_enqueue_script(
        'be-editor', 
        get_stylesheet_directory_uri() . '/assets/js/editor.js', 
        array( 'wp-blocks', 'wp-dom' ), 
        filemtime( get_stylesheet_directory() . '/assets/js/editor.js' ),
        true
    );
}
add_action( 'enqueue_block_editor_assets', 'be_gutenberg_scripts' );

Добавление Стилей Блоков

Я работаю над сайтом с двумя стилями заголовков.

heading-styles

В мой файл editor.js я добавляю варианты стиля ”Default“ и ”Alternate":

wp.domReady( () => {

    wp.blocks.registerBlockStyle( 'core/heading', [ 
        {
            name: 'default',
            label: 'Default',
            isDefault: true,
        },
        {
            name: 'alt',
            label: 'Alternate',
        }
    ]);
} );

При выборе стиля, к блоку применяется класс .is-style-{name}. Таким образом, в моей таблице стилей h2 { } есть мой стиль по умолчанию и h2.is-style-alt { } мой альтернативный стиль.

Зачем регистрировать стиль по умолчанию?

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

Я регистрирую дополнительную опцию стиля под названием "Default” или "Regular", но не добавляю никаких конкретных стилей для этой опции стиля. Когда пользователь выбирает стиль «по умолчанию» для h2, он использует h2 {} стиль, а не более конкретный h2.is-style-default{ }.

Если вы добавите isDefault: true стиль, то он будет помечен как активный для блоков, которые еще не имеют указанного стиля.

Удаление стилей блоков

При стилизации кнопок в Редакторе блоков Гутенберга я обычно не хочу использовать стандартные для WordPress параметры стиля: rounded, square и outline.

Вы можете использовать unregisterBlockStyle для удаления существующих блочных стилей из блока. Добавьте следующий код в файл editor.js описанный выше:

wp.domReady( () => {
    wp.blocks.unregisterBlockStyle(
        'core/button',
        [ 'default', 'outline', 'squared', 'fill' ]
    );
} );

Я часто удаляю значения по умолчанию, а затем загружаю свои собственные параметры стиля кнопок:

wp.domReady( () => {
    wp.blocks.unregisterBlockStyle(
        'core/button',
        [ 'default', 'outline', 'squared', 'fill' ]
    );

    wp.blocks.registerBlockStyle(
        'core/button',
        [
            {
                name: 'default',
                label: 'Default',
                isDefault: true,
            },
            {
                name: 'full',
                label: 'Full Width',
            }
        ]
    );
} );

Вы также можете полностью удалить блоки из редактора.

Список имен блоков

Вам нужно знать Полное имя блока, чтобы присоединять или удалять стили из него. Вот список всех основных блоков по состоянию на WordPress 5.4 (исключая все встраиваемые):

  • core/archives
  • core/audio
  • core/button
  • core/buttons
  • core/calendar
  • core/categories
  • core/classic
  • core/code
  • core/column
  • core/columns
  • core/cover
  • core/file
  • core/latest-comments
  • core/latest-posts
  • core/legacy-widget
  • core/gallery
  • core/group
  • core/heading
  • core/html
  • core/image
  • core/list
  • core/media-text
  • core/more
  • core/navigation
  • core/navigation-link
  • core/nextpage
  • core/paragraph
  • core/preformatted
  • core/pullquote
  • core/quote
  • core/rss
  • core/search
  • core/separator
  • core/shortcode
  • core/social-link
  • core/social-links
  • core/spacer
  • core/subhead
  • core/table
  • core/tag-cloud
  • core/text-columns
  • core/verse
  • core/video
  • core/widget-area

Поиск названия блока

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

Я использую ea_pp() ниже (код здесь), но вы также можете использовать print_r().

 /**
 * Display Post Blocks 
 *
 */
function ea_display_post_blocks() {
    global $post;
    ea_pp( esc_html( $post->post_content ) );
}
add_action( 'wp_footer', 'ea_display_post_blocks' );

29 июля 2020
  1. Создание страницы администратора
  2. Добавление полей
  3. Простой пример

Обратите внимание на скриншот - это то, что мы собираемся создать в этом уроке:


WordPress settings page with input field

Читать далее →

7 июля 2020

При загрузке видео на YouTube автоматически создается 4 скриншота, которые можно легко использовать в дизайне сайта, зная ID вашего видео:

Самое первое изображение крупное, остальные — миниатюры.

КОД:

http://img.youtube.com/vi/id-видео/0.jpg
http://img.youtube.com/vi/id-видео/1.jpg
http://img.youtube.com/vi/id-видео/2.jpg
http://img.youtube.com/vi/id-видео/3.jpg 

http://img.youtube.com/vi/id-видео/default.jpg <!-- Стандартная миниатюра -->
http://img.youtube.com/vi/id-видео/hqdefault.jpg <!-- Миниатюра высокого качества -->
http://img.youtube.com/vi/id-видео/mqdefault.jpg <!-- Миниатюра среднего качества -->
http://img.youtube.com/vi/id-видео/sddefault.jpg <!-- Стандартный формат миниатюры -->
http://img.youtube.com/vi/id-видео/maxresdefault.jpg <!-- Максимальный размер миниатюры -->

18 апреля 2020

При первичной настройке блога важно разумно сделать все технические составляющие. В первую очередь исправить файл htaccess под WordPress, потому что он регулирует серверные настройки Apache. Файл .htaccess обязательно должен находится в корневой папке сайта, вместе с каталогами типа wp-admin.

Что нужно добавить в htaccess обязательно

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

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

Стандартный htaccess

Если htaccess не было изначально, то нужно добавить стандартный код, который WordPress прописывает при установке.

# 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]
</IfModule>
# END WordPress

301 редирект на https

Если к ресурсу прикреплен SSL сертификат, то необходимо занести после #BEGIN WordPress конфигурацию 301 редиректа.

RewriteEngine On 
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Как должен выглядеть правильный htaccess

В итоге правильный код htaccess должен выглядеть так:


# BEGIN WordPress
RewriteEngine On 
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php&#36; - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

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

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

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

Что еще можно подключить в htaccess

Хостинги разные, поэтому не все предоставляют услуги внутренней оптимизации сервера, тогда приходится вручную прописывать правила в htaccess. Спросите заранее в поддержке хостера, включены ли такие услуги как:

  • Кэш браузера
  • Gzip сжатие
  • Защита wp-config, нет ли доступа его просмотреть

Кэш браузера

Для начала проверим активен ли кэш браузера на сайте, переходим на сервис webpagetest, вводим в поле url главной страницы и находим start scan.

Определяем ошибки в серверной оптимизации
Проверка функций блога

Ждем процесса проверки и смотрим на результаты. Ищем строчку Leverage browser caching и определяем кэшируются ли документы. В моем случае да, исключение – метрика, аналитика и vk, на них повлиять нельзя.

Определение наличия кэша браузера
Есть ли кеш браузера

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

<ifModule mod_headers.c>
<FilesMatch "\.(html|htm)$">Header set Cache-Control "max-age=43100</FilesMatch>
<FilesMatch "\.(js|css|txt)$">Header set Cache-Control "max-age=604700</FilesMatch>
<FilesMatch "\.(flv|swf|ico|gif|jpg|jpeg|png)$">Header set Cache-Control "max-age=2591000"</FilesMatch>
<FilesMatch "\.(pl|php|cgi|spl|scgi|fcgi)$">Header unset Cache-Control</FilesMatch>
</IfModule>

Gzip сжатие

Gzip сжатие потеряло актуальность при появлении AMP и Турбо страниц, но пользоваться ими нужно. Проверяем тем же сервисом webpagetest, только ищем строчку «Use gzip compression for transferring compressable responses».

Есть ли сжатие gzip на сервере WordPress
Наличие gzip сжатия

Сжатие настроено и работает, если по другому то пишем в помощь хостеру, с просьбой включить Gzip. При отказе добавляем такие строки в htaccess и проверяем сервисом.

<ifModule mod_gzip.c>
  mod_gzip_on Yes
  mod_gzip_dechunk Yes
  mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$
  mod_gzip_item_include mime ^application/x-javascript.*
  mod_gzip_item_include mime ^text/.*
  mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
  mod_gzip_item_exclude mime ^image/.* 
  mod_gzip_item_include handler ^cgi-script$
</ifModule>

Такими встроенными возможностями обладают большинство провайдеров, например:

  • Beget
  • Timeweb
  • Masterhost

Для безопасности и защиты wp-config

В 99,9% проблемы нет, но перестраховаться стоит. Заходим на сайт и приписываем к адресу /wp-admin.php, смотрим что выдает браузер.

Показан ли wp-config
Отображение wp-config

Должна открыться пустая страница или произойти 301 переадресация на главную. Если покажется код документа, то нужно срочно его закрывать, просим помощи в поддержке, или прописываем вот такой текст.

<Files wp-config.php>
order allow,deny
deny from all
</Files>

18 апреля 2020

Для максимальной SEO оптимизации сайта на WordPress нужно создать robots.txt.

Где лежит файл robots в WordPress

На любом из ресурсов robots.txt должен лежать в корневой папке. В случае с вордпресс, там где находится папка wp-admin и ей подобные. К сожалению, стандартная сборка WordPress не предусматривает наличие такого объекта.

Читать далее →

12 апреля 2020

Решил добавить в свою тему включаемый блок с полями.

Идея в следующем:

Есть обычные посты. Иногда требуется внизу поста добавить данные мероприятия с иконками (адрес, дата, время).

Итак, приступим!

Читать далее →
Теги: WordPress, ACF

9 апреля 2020

Итак, приступим к изменению логина при входе в админ (wp-login.php).

1) создайте картинку с размерами 326х67 пикселей. Это может быть название или адрес вашего блога. Эту картинку нужно положить в папку images вашей темы.

2) откройте файл functions.php (админ WordPress =>Внешний вид => Редактор =>functions.php) и вставьте следующий код между тегами "<?php ?>".

Читать далее →

17 февраля 2020

Gulp нужно постоянно устанавливать заново в новый проект или нет?

Решил скопировать содержимое с предыдущего проекта в новый и увидел что ничего не произошло!!!

Всё потому, что забыл сделать самое главное:

Нужно перенести gulpfile.js, package.json, после чего сделать npm install и все будет ок.