Чтобы выбрать соседний элемент после первого дочернего элемента в JavaScript, вы можете использовать свойство nextElementSibling. Вот пример кода:
// Получаем родительский элемент по классу
const parentElement = document.querySelector('.parent-class');
// Получаем первый дочерний элемент
const firstChild = parentElement.firstElementChild;
// Получаем соседний элемент после первого дочернего
const nextSibling = firstChild.nextElementSibling;
// Выводим результат в консоль
console.log(nextSibling);
Объяснение:
parentElement.firstElementChild возвращает первый дочерний элемент родителя.
firstChild.nextElementSibling возвращает следующий элемент-сосед после первого дочернего.
Таким образом, вы можете легко получить соседний элемент после первого дочернего. Замените '.parent-class' на ваш класс родителя.
В этой статье проведём обзор способов выбора элементов на чистом JavaScript.
Базовые методы querySelector:
// Выбор первого совпадения
const element1 = document.querySelector('.class'); // по классу
const element2 = document.querySelector('#id'); // по ID
const element3 = document.querySelector('div'); // по тегу
const element4 = document.querySelector('[data-attr]'); // по атрибуту
// Выбор ВСЕХ совпадений
const elements1 = document.querySelectorAll('.class');
Классические методы DOM:
// По ID
const elementById = document.getElementById('myId');
// По имени класса
const elementsByClass = document.getElementsByClassName('myClass');
// По тегу
const elementsByTag = document.getElementsByTagName('div');
// Первый и последний элемент
const [firstElement] = document.querySelectorAll('.items');
const [lastElement] = [...document.querySelectorAll('.items')].reverse();
Поиск ближайших элементов:
// Родительский элемент
const parentElement = currentElement.parentElement;
// Дочерние элементы
const childElements = currentElement.children;
// Соседние элементы
const nextSibling = currentElement.nextElementSibling;
const prevSibling = currentElement.previousElementSibling;
Безопасный выбор с проверкой:
Пример реализации через функцию:
function safeSelect(selector) {
const element = document.querySelector(selector);
if (!element) {
console.warn(`Элемент с селектором ${selector} не найден`);
return null;
}
return element;
}
💡 Рекомендации:
querySelector медленнее, чем getElementById
Используйте const для неизменяемых селекторов
Кэшируйте часто используемые элементы
Проверяйте существование элемента перед работой
Для производительности используйте делегирование событий
Скачивать видео мы будем при помощи программы из этого репозитория: https://github.com/yt-dlp/yt-dlp — это форк популярного проекта youtube-dl и на сегодняшний день это активно развивающийся open-source проект. Его можно использовать совершенно бесплатно.
Скачиваем ролики из Windows 11
Шаг 1: Загрузите релиз для ОС Windows на свой компьютер
Откройте официальный сайт проекта и в разделе который касается УСТАНОВКИ программы, кликните по версии релиза для операционной системы Windows
и сохраните файл в любое место на вашем компьютере (P.S. главное чтобы Вы его смогли потом отыскать)
Шаг 2: Скачайте зависимости для работы программы
Далее, необходимо скачать зависимости (дополнительные программы), которые обеспечат правильную работу основной программы.
Следуем вот к этому разделу «DEPENDENCIES» и кликаем по любой ссылке из примера
После этого мы будем перемещены в специальный раздел, где нам необходимо скачать на компьютер файл с зависимостями (желательно в тоже место, куда и основную программу yt-dlp.exe)
Осуществляем загрузку по клику на кнопочку :
В данной статье мы рассматриваем пример для 64-разрядной версия Windows. В подавляющем большинстве случаев вероятнее всего у вас будет именно эта версия. Но если что-то пошло не так или есть сомнения, то можно всегда проверить и убедиться в этом.
Любой программой которой вы пользуетесь для этой цели или стандартными средствами Windows
Содержимое внутри извлечённой папки «ffmpeg-master-latest-win64-gpl» будет следующим:
Нас интересует содержимое папки «bin«, именно это и есть зависимости для правильной работы основной программы:
Шаг 4: Создайте отдельную папку и перенесите в неё файлы которые вы загрузили
Это необходимо сделать для удобства.
Я создал папку с названием «YT» и перенёс в неё файлы из папки bin и основной файл программы, итоге у меня получилось:
Далее, для удобства я перенёс эту папку в папку Видео, чтобы видео-ролики были для простоты навигации и логичности в соответствующем разделе.
Подготовительный этап позади. Теперь рассмотрим непосредственно работу в программе.
Как скачивать видео через yt-dlp?
Быстрое скачивание одиночного ролика
Шаг 1: Запуск программы
По привычке, пользователи ОС Windows могут быть искушены сделать двойной клик по приложению, чтобы запустить программу. И скорее всего увидят предупреждение от ОС:
Если всё равно продолжить запуск, то он увенчается неудачей. В консоли мы получим уведомление, о том, что запуск программы и её работа осуществляются иначе.
На самой верхней строке можно увидеть, как использовать программу. Нужно из консоли (терминала) обратиться к этому файлу и передать в него ссылку на видео.
Первый способ
Для этого в папке с программой, или любом другом месте, где у вас находится файл yt-dlp.exe, нажмите правой кнопкой мыши, для того чтобы вызвать контекстное меню
Затем нажмите Открыть в Терминале.
Второй способ
В адресной строке текущей папки напишите cmd и нажмите Enter
Откроется терминал. Проверьте правильность пути. Он должен вести в ту папку в которой вы его запускали и в которой находятся ваш файл программы и программки-зависмости.
Убедиться в этом можно при помощи команды DIR
Содержимое текущей директории должно быть с этими файлами.
Может сработать аналогичная UNIX-команда ls Результат отображение будет такой же:
Шаг 2: Откройте на платформе YouTube понравившийся ролик
Скопируйте ссылку ролика для скачивания.
Шаг 3: Обратитесь к основному файлу программы
Теперь необходимо в терминале прописать название нашего основного файла и передать через пробел ему скопированную ссылку.
Возможная ошибка при запуске
Suggestion [3,General]: Команда yt-dlp.exe не найдена, однако существует в текущем расположении. По умолчанию оболочка Windows PowerShell не загружает команды из текущего расположения. Если вы уверены в надежности команды, введите «.\yt-dlp.exe». Для получения дополнительных сведений вызовите справку с помощью команды «get-help about_Command_Precedence».
«Точка» и «Обратный слэш» это говорит терминалу, о том, что обращаемся мы к файлу в текущей директории, т.е. в той в которой находимся в данный момент.
Вот реальный пример правильного запуска программы:
Если всё прошло правильно, то в этой же папке с программой, у вас должен оказаться загружаемый ролик 🙂
Как скачать весь плейлист с YouTube?
Загрузка всего плэйлиста происходит аналогично одиночному видео, то есть принцип действия лежит такой же.
Необходимо найти нужный плэйлист:
Кликнуть на него и скопировать ссылку всего плэйлиста:
Вставить через пробел в терминал (по аналогии с одиночным видео)
Ниже мы видим, что в плэйлисте программа обнаружила 31 видео и начала загрузку…
Ниже скриншот иллюстрирует загрузку уже 10-го видео из 31-го…
Внимание! В процессе работы могут быть обрывы соединения или возникает какие то ошибки другого характера и в итоге может случиться так, что некоторые ролики будут загружены не полностью.
Ниже пример того, что некоторые ролики загрузились неполностью. Об этом сигнализирует белый файлик неопределённого типа.
В этом случае, нужно повторить загрузку! Успешно загруженные ролики будут пропущены, а завершённые с ошибкой догрузятся.
На примере ниже видно, что несколько видео было пропущено, так как они есть уже на нашем диске, а ролик номер 5 стал догружаться.
В итоге у нас загрузился весь плейлист:
Рекомендация. Для удобство можно сделать отдельную папку и переместить загруженные видео по смыслу туда:
Как использовать параметры?
Если взглянуть на схему использования данной программы, то можно заметить, что перед URL (ссылка на видео) мы можем , также через пробел, ещё указывать передавать параметры (настройки) программе.
yt-dlp [OPTIONS] [--] URL [URL...]
Например, чтобы загрузить все миниатюры к видео нам необходимо передать в программу специальную опцию --write-all-thumbnails или одну миниатюру —-write-thumbnail Это послужит предписанием для программы сохранить все форматы миниатюр (или один) на ваш диск.
BitLocker — это функция безопасности Windows, которая обеспечивает шифрование для целых томов, устраняя угрозы кражи или раскрытия данных с потерянных, украденных или неправильно списанных устройств.
Чтобы задействовать BitLocker необходимо нажать правой кнопочкой мышки на нужном диске и включить функцию
Но может случиться так, что BitLocker при включении закапризничает и выдаст ошибку
В этом случае, для успешного включения необходимо сделать дополнительную настройку.
Шаг 1
Нажмите клавиши Win+R на клавиатуре, введите gpedit.msc и нажмите Enter.
откроется вот такое окно редактора групповых политик Windows
Шаг 2
Перейдите к разделу по следующему пути: Конфигурация компьютера — Административные шаблоны — Компоненты Windows — Шифрование диска BitLocker — Диски операционной системы.
Далее, в правой части окна найдите параметр «Этот параметр политики позволяет настроить требование дополнительной проверки подлинности при запуске» и дважды кликните по нему мышью.
Этот параметр политики позволяет указать, требует ли BitLocker дополнительной проверки подлинности при каждом запуске компьютера, а также используется ли BitLocker в сочетании с доверенным платформенным модулем или без него.
Если вы хотите использовать BitLocker на компьютере без доверенного платформенного модуля, установите флажок «Разрешить использование BitLocker без совместимого доверенного платформенного модуля». В этом режиме для запуска необходим либо пароль, либо USB-накопитель. При использовании ключа запуска ключевые сведения, применяемые для шифрования диска, хранятся на USB-накопителе, образуя USB-ключ. При установке USB-ключа проверяются права на доступ к диску, и диск становится доступным. Если USB-ключ потерян или недоступен или вы забыли пароль, вам придется воспользоваться одним из параметров восстановления BitLocker, чтобы получить доступ к диску.
Шаг 3
Повторите включение шифрования и выберите метод подтверждения: или при помощи пароля, или при помощи ключа сохранённого на USB-устройство
есть возможность сохранения ключа в учетную запись Майкрософт или даже его печать 🙂
далее указываем какую часть диска требуется зашифровать. Выбираю весь диск.
режим шифрования
и перезагружаем компьютер …
После перезагрузки повторим клик по нашему диску
Видим, что название сменилось на новое слово Управление.
При переходе по этой ссылки мы видим состояние наших дисков. Выбранный ранее диск зашифрован и работает в режиме BitLocker
С Главной страницы сайта путь до загрузки будет следующий:
далее
для стабильной работы и совместимости рекомендуется загружать версию LTS (Long term support) т.е. версия с долгосрочной поддержкой от разработчиков.
Шаг 2. Откройте командную оболочку Windows
Не знаете как запустить командную строку (cmd) в Windows? Очень просто!
Вариант 1
Нажмите сочетания клавиш Win + R
В открывшемся окне Выполнить напишите cmd и нажмите кнопку OK
Перед Вами откроется примерно вот такое окно, куда мы и будем вносить команды по созданию нашего загрузочного USB-носителя.
Вариант 2. Через Поиск
Второй универсальный метод заключается в поиске через глобальный поиск Windows. Например, в версии Windows 11 можно нажать на иконку поиск или сразу воспользоваться поиском через меню Пуск
Шаг 3. Вставьте USB-устройство флэш-памяти в работающий компьютер или ноутбук
Убедитесь, что оно появилось в системе, например, это можно увидеть в разделе Мой компьютер. Чтобы убедиться, Вы можете при открытом окне Мой компьютер вынуть и снова вставить в разъем USB ваш носитель. Естественно, он должен снова отобразиться
Шаг 4. Работа в командной строке
Далее, нам предстоит выполнить последовательность команд, которые и создадут загрузочный носитель с операционной системой Ubuntu
Введите первую команду diskpart
Далее подтвердите действие и перед вами должно появиться вот такое рабочее окно утилиты DISKPART — помогает управлять дисками компьютера (дисками, секциями, томами или виртуальными жесткими дисками).
В открывшемся новом окне командной строки введите list disk
Внимание! Постарайтесь точно определить, например, по объему, нужный диск
В моём случае это диск с объемом в 7 Гб (7651 Мб).
В командной строке введите select disk «X» , где X — номер диска или буквы диска USB-устройства флэш-памяти, а затем нажмите клавишу ENTER.
В моём случае это цифра 3.
Введите clean и нажмите клавишу ENTER. Эта команда удаляет все данные с USB-устройства флэш-памяти.
Далее создадим новый основной раздел на USB-устройстве флэш-памяти, для этого введите create partition primary, и нажмите клавишу ENTER.
Чтобы выбрать созданный раздел, введите select partition 1 и нажмите клавишу ENTER.
Далее, отформатируем раздел. Для этого введите format fs=ntfs quick и нажмите клавишу ENTER.
Если серверная платформа поддерживает Единый интерфейс EFI (UEFI), следует отформатировать USB-устройство флэш-памяти в файловой системе FAT32, а в NTFS. Чтобы отформатировать раздел в файловой системе FAT32, введите format fs=fat32 quickи нажмите клавишу ENTER.
И финальным действием нужно пометить раздел как активный, для этого введите active и нажмите клавишу ENTER.
Отлично! Подготовка будущего установочного накопителя прошла успешно! Можно завершить работу с DISKPART набрав exit и нажав ENTER.
Теперь нам необходимо скопировать файлы из образа (который мы скачали) на подготовленный носитель.
Шаг 5. Скопируйте все файлы на подготовленный носитель
Сперва мы должны смонтировать образ который скачали. Нажимаем на нём правой кнопочкой мышки и затем Подключаем (монтируем)
Откроется окно с файлами этого скаченного образа Ubuntu
Ну а в знакомом для многих пользователей разделе Мой компьютер будет находится в виртуальном дисководе ваш подключенный носитель с Ubuntu
Тут главное не запутаться в дисках. Будьте внимательны.
Копирование мы будем осуществлять в командной строке, напомню что ранее мы закрыли окно DISKPART и вернулись к командной строке (cmd)
Попробуйте там ввести robocopy, если всё идёт правильно, то вы непременно должны увидеть вот такое окно
Robocopy(от англ. Robust File Copy) — утилита командной строки которая копирует данные файлов и папок из одного расположения в другое.
Отлично. Теперь внимательно взгляните на ваши диски, вернее на их буквы и точно поймите что куда вы будете копировать.
В моём случае это из носителя с назначенной буквой G в носитель с буквой E. Ещё раз, G: — подключенный ISO-файл c Ubuntu, а E: — это устройство флэш-памяти).
/s — копирует вложенные каталоги. Этот параметр автоматически исключает пустые каталоги.
robocopy G: E: /s
копирование успешно запушено. Теперь можно пойти попить кофе 🙂
Копирование завершено. Наш установочный носитель с Убунту готов! Теперь осталось сделать перезагрузку системы и загрузиться с нашего носителя. Но это уже совершенно другая история 🙂
Дополнительный пароль защиты ключа можно пропустить, нажав снова «Enter»:
И после следующего клика наша пара ключей (публичный и приватный) будут сгенерированы и сохранены в указанную директорию
Шаг 3. Копирование публичного ключа в буфер обмена
Зачастую, вы будете делиться своим публичным ключем с другими разработчиками или сервисами такими, как GitHub, поэтому нам нужно научиться копировать значение публичного ключа в буфер обмена. Но прежде давайте проверим и посмотрим как называется наш ключ.
Обзор существующих ключей SSH
Чтобы проверить и увидеть наш сгенерированный ключ введите в терминал следующую команду:
ls -al ~/.ssh
Эта команда отобразит наши ключи. Нас интересует ключ с расширением .pub
Копируем содержимое ключа в буфер обмена
cat ~/.ssh/id_ed25519.pub | pbcopy
или вот так:
pbcopy < ~/.ssh/id_ed25519.pub
В итоге содержимое вашего ключа (по сути это и есть ключ) будет в буфере обмена и вот что он из себя представляет:
Шаг 1: Откройте меню нажав O в левом верхнем углу, чтобы открыть меню
Шаг 2: Нажмите на ссылку Настройки.
Обратите внимание, что открыть настройки можно при помощи комбинации горячих клавиш Alt+P
Шаг 3: В разделе «Конфиденциальность и безопасность» выберите «Настройки сайтов»
Шаг 4: Чтобы запретить всем сайтам использовать JavaScript выберите Запретить сайтам использовать JavaScript
В этом случае JS будет отключен для всех посещаемых сайтов. Для того, чтобы запретить выполнение JavaScript на выборочных сайтах используйте настройки ниже
Здесь необходимо добавить адреса сайтов для которых будет запрещён или наоборот разрешен JavaScript
Если мы в цикле перебираем массив, то не секрет, что его первый элемент будет иметь цифру 0. А отсюда нужно понимать , к чему мы желаем её относить (к чётному или нечётному), в таком случае наш код может дополниться условием:
Представьте на минутку, как Вы (или любой другой человек) открывает браузер, «ходит» по сайтам и копирует с них данные (телефоны, адреса и т.п.). Парсинг — то же самое, только ходит не человек, а робот. Подобным образом поступают поисковые системы при индексации сайтов, или агрегаторы, которые обновляют и собирают тематическую информацию с разных источников в сети.
В этой статье мы рассмотрим бесплатную программу для парсинга известного сайта электронного справочника с картами городов от компании-разработчика ООО «ДубльГИС».
Сам по себе парсинг сайта, как и прочих открытых информационных ресурсов полностью законен, информация находится в открытом доступе и для её получения мы ничего не взламываем и ничего противозаконного не делаем. Мы просто аналогично человеческим действиям по копированию данных делаем тоже самое только при помощи программы.
3.4. Использование Платформы и (или) Сайта Администрации иными способами, в том числе путем копирования (воспроизведения) размещенного на Сайте Контента, а также входящих в состав Платформы и (или) Сайта Администрации элементов дизайна, программ для ЭВМ и баз данных, их декомпиляция и модификация, строго запрещены.
Парсер для автоматического сбора базы адресов и контактов предприятий, которые работают на территории России
Парсер для автоматического сбора базы адресов и контактов предприятий, которые работают на территории России, Казахстана, Беларуси, Азербайджана, Киргизии, Узбекистана, Чехии, Египта, Италии, Саудовской Аравии, Кипра, Объединенных Арабских Эмиратов, Чили, Катара, Омана, Бахрейна, Кувейта .
💰 Абсолютно бесплатный 🤖 Успешно обходит анти-бот блокировки на территории РФ 🖥️ Работает под Windows, Linux и MacOS 📄 Три выходных формата: CSV таблица, XLSX таблица и JSON список 🔗 Наличие генератора ссылок по городам и рубрикам
Начало работы
Учтите, что для работы парсера необходимо установить браузер Google Chrome. С установкой «Гугл Хром» в MacOS можно ознакомиться в этом видео.
Шаг №1 Скачайте программу
Первым делом скачайте релиз программы для вашей операционной системы (Windows, MacOS или Linux)
Шаг №2 Извлеките из скаченного архива программу
Вот что из себя представляет скаченный файл. Это архив, внутри которого и находится сама программа.
После разархивирования (извлечения из архива) программы, нам требуется её запустить, но прежде давайте взглянем что из себя представляет этот файл на Рабочем столе в ОС Windows 11
Шаг №3 Запустите программу
Двойным кликом запустите программу.
Вероятнее всего вы увидите при запуске вот такое окно:
И в этом нет ничего удивительного. Просто дело в непроверенном издателе, так сказать. И естественно Защитник Windows или какой то другой антивирус может как то на это отреагировать 🙂
Нажимаем Подробнее и затем Выполняем запуск в любом случае:
Та-дам! Наш парсер запущен!
Вот так выглядит окно программы при запуске.
Что же умеет парсер? Parser2GIS способен автоматически собрать информацию о всех интересующих Вас предприятиях и организациях, опубликованных в онлайн-справочнике 2GIS. И сейчас мы в этом убедимся!
Вернемся к Главному окну программы. Перед нами GUI — графический интерфейс парсера, сделанный для простых людей, за что отдельное спасибо автору!
Шаг №4 Работа программы
Вначале нам необходимо сгенерировать, подготовить ссылки электронного справочника которые наш парсер будет разбирать для осуществления сбора данных.
Откроется дополнительное окно, в котором нам нужно кликнуть на кнопку Сгенерировать
Далее, мы увидим ещё одно окно поверх предыдущих. Здесь нам нужно указать, выбрать рубрику для парсинга. Нажимаем на троеточие, рядом с полем Рубрика
При выборе рубрик можно воспользоваться поисковым запросом, для исключения остальных рубрик в название которых не попадает ваш запрос, например, мы хотим найти Тату-салоны. При поиске ключевого слова «тату» видим, что есть данная рубрика и следовательно выбираем её.
Затем, кликаем ok
Далее, убедитесь что выбрана нужная рубрика и отметьте города в которых будет осуществляться поиск и парсинг Тату-салонов. Выбирать можно (как в примере ниже) выборочно, либо выбрать все города России, или другой страны.
После окончательной предустановки (настройки) нажмите ok
В следующем окне программы появятся ссылки для парсинга выбранных городов + рубрик. Нажимаем ok
Убедитесь, что ваши ссылки прописались в поле URL, что ничего не сбилось
Настройки программы
Кликнув на шестерёнку можно задать настройки для парсинга. Я оставляю всё по умолчанию. Обратите внимание, что скрытый режим отключён, а это значит мы увидим воочию работу парсера в браузере google Chrome (P.S. надеюсь вы не забыли его установить 🙂 )
Эта работа программы будет напоминать переход по ссылкам человеческими руками, но только с бешенной скоростью обработки информации.
Всё готово! Выберите нужный формат исходных данных (по умолчанию CSV) , далее, через кнопку Обзор выберите место на компьютере куда будет сохранён результат работы парсера и третим действием запустите работу программы.
Вот так выглядит окно выбора пути сохранения файла. На этом этапе нужно задать ему имя. Я назвал его по имени категории которую собираюсь парсить в северных городах России:
Запомните место сохранения файла. Перед запуском парсера проверьте еще раз путь в строке и запустите парсер:
В процессе работы отроется окно браузера а в Главном окне программы вы будите видеть последовательность событий (log) работы программы:
После успешного завершения работы программы вы должны увидеть в логах вот такое сообщение о завершении парсинга:
А в месте сохранения файла обнаружить непосредственно файл с результатами работы программы:
В файле будут находится «спарсеные» данные из справочника 2ГИС.
Что делать с данными?
Если вы владеете навыками работы с Excel, то вам не составит наверное труда разобрать эти данные по столбикам. Но учтите, если открыть файл в формате CSV при помощи Эксель, то мы обнаружим слитые в строках данные
Вот так это выглядит. Необходим разбор. На самом деле это не составит труда для человека имеющего даже небольшой опыт работы с Эксель
Но в качестве примера я продемонстрирую разбор и форматирование данных через бесплатную программу Гугл Таблицы
Создаём пустую таблицу и через главное меню программы импортируем данные из нашего файла (Файл -> Импортировать)
Затем, во вкладке Добавить через кнопку Обзор выбираем и подгружаем наш файл формата .CSV
Настройки я не меняю и оставляю по умолчанию
После импорта данных мы видим что они распределены строго по столбикам, как мы того и ожидали.
При желании мы можем работать с выборочными столбиками:
Ну вот и всё! Благодарю за внимание 🙂
Запуск и принцип работы парсера можно посмотреть в этом видео:
Подключение файлов CSS (для стилевого оформления элементов на странице) осуществляется при помощи специальной для этого функции wp_enqueue_style()
В принципе можно подключать стили (файлы CSS) по разному, хоть прямиком через HTML-элемент <link> 🙂 Но это будет не совсем правильно с точки зрения философии WordPress, его стандартов кодирования, так сказать.
Поэтому единственным правильным методом подключения файлов CSS в вашу тему (на страницы вашего сайта) будет являться метод через специальные функции.
Пример подключения основного файла стилей style.css и в примере после него — произвольного:
<?php
/**
* Подключаем основной файл стилей темы (style.css)
*/
function poet_add_theme_styles() {
wp_enqueue_style( 'style-main', get_stylesheet_uri() );
}
add_action( 'wp_enqueue_scripts', 'poet_add_theme_styles' );
Кстати, ниже пример показывает, что мы можем управлять зависимостью одного стиля от другого, то есть очередностью их подключения.
<?php
/**
* Подключаем основной файл стилей темы (style.css) и дочерний
*/
function poet_add_theme_styles() {
wp_enqueue_style( 'style-main', get_stylesheet_uri() );
wp_enqueue_style( 'child-style',
get_stylesheet_directory_uri() . '/theme.css',
array( 'style-main' ), // указываем зависимость
wp_get_theme()->get('Version')
);
}
add_action( 'wp_enqueue_scripts', 'poet_add_theme_styles' );
Рассмотрим ещё одну функции, при помощи которой мы можем зарегистрировать файлы стилей. Важно понимать отличие этой функции от рассмотренной ранее. Дело в том что при помощи wp_enqueue_style() мы сразу подключаем указанный стиль, а при помощи wp_register_style() мы только регистрируем его в окружении WordPress, что бы он (WordPress) знал этот файл стилей по имени и в нужный момент или при нужном условии мы можем его подключить.
Ниже я демонстрирую тот же самый пример что и в блоке выше, но только прежде регистрирую скрипт с тем же названием, а потом уже подключаю на страницы сайта. Попробуйте уловить смысл при сравнении этих кусочков кода.
<?php
/**
* Подключаем основной файл стилей темы (style.css) и дочерний
*/
function poet_add_theme_styles() {
wp_enqueue_style( 'style-main', get_stylesheet_uri() );
wp_register_style( 'child-style',
get_stylesheet_directory_uri() . '/theme.css',
array( 'style-main' ), // указываем зависимость
wp_get_theme()->get('Version')
);
wp_enqueue_style( 'child-style' );
}
add_action( 'wp_enqueue_scripts', 'poet_add_theme_styles' );
Теперь, после регистрации стиля по имени, мы можем его подключать простым вызовом функции wp_enqueue_style( ‘child-style’ ), в которую передаём имя этого файла CSS заданное при регистрации. На самом деле такой метод подключения даёт больше гибкости, особенно для опытных разработчиков.
ООП
Для любителей объектно-ориентированной парадигмы разработки вышеуказанный пример можно записать таким образом:
<?php
/**
* Подключаем основной файл стилей темы (style.css) и дочерний
*/
class Poet_Add_Styles
{
/**
* Constructor.
*/
public function __construct(
// Add stylesheet.
add_action( 'wp_enqueue_scripts', array( $this, 'poet_add_theme_styles' ) );
}
/**
* Add and enqueues stylesheet.
*/
public function poet_add_theme_styles() {
wp_enqueue_style( 'style-main', get_stylesheet_uri() );
wp_register_style( 'child-style',
get_stylesheet_directory_uri() . '/theme.css',
array( 'style-main' ), // указываем зависимость
wp_get_theme()->get('Version')
);
wp_enqueue_style( 'child-style' );
}
}
new Poet_Add_Styles();
Класс с методом-конструктором вызовет этот метод на каждом вновь созданном объекте класса. Поэтому объявление метода-конструктора удобно для инициализации того, что может потребоваться объекту в начале работы.
Проблемы кеширования
Если посмотреть на исходный код страницы сайта на WordPress, то можно заметить вот такие добавки (называются гет-параметрами) к подключаемым файлам стилей
Если рассмотреть пример нашего кода, то он подключает файл theme.css и добавляет гет-параметром версию темы которая прописана в файле style.css. В итоге мы можем заметить версию 1.0
Если бы при регистрации или подключении файла CSS мы бы не указали параметр версии (функцией wp_get_theme()->get(‘Version’)), или установили бы значение false, то была бы тогда использована версия WordPress, как примере ниже, к нашему файлу добавилась версия WP
А если установить null, то никакая версия не будет установлена.
Чем это чревато? Представьте, что вы внесли правки в файл theme.css и изменили стиль оформления элемента, например, с зеленого фона на красный. То пользователь, который уже посещал ваш сайт снова будет видеть зелёный фон. Почему так?
Потому что при первом посещении сайта ресурс в виде файла theme.css в подавляющем большинстве случаев сохраняется в локальное хранилище браузера, что бы при повторном запросе не запрашивать и не загружать его заново с сервера а отдать из локального хранилища браузера.
Получается, что если пользователь не обновит страницу или не почистит кеш, он так и будет видеть зелёный фон у элемента. Вероятнее всего новый стиль загрузится и отобразится у него со сменой версии WordPress или сменой версии темы оформления.
Поэтому, если вы часто вносите правки в файлы стилей, то стоит позаботится о решении этой неприятности.
Как решить эту проблему?
Самый простой способ решения передавать в качестве версии дату последнего изменения файла.
В этом поможет функция filemtime — Получает время последнего изменения файла. Тогда наш код немного преобразится:
P.S. конечно можно внести сюда небольшую оптимизацию и сократить вызов функции get_stylesheet_directory(), которая получает путь к файлу темы (родительской), до одного вызова, а не двух, как в примере. Но лучше остановимся на этом )
Для установки в операционную систему Windows необходимо со страницы Загрузки официального сайта скачать и запустить установочный файл.
Учтите, что для успешной установки необходим исполняемый файл интерпретатора PHP. Для этого необходимо перейти на страницу загрузки для PHP и скачать файл нужной вам сборки.
Разархивируйте файлы сборки PHP в том место где вы сможете их потом найти 🙂 Вот мой пример:
Убедитесь, что внутри среди файлов есть php.exe
Теперь можно запустить установочный файл Composer и пройти интуитивно понятные шаги установки:
Далее будьте внимательны! Здесь необходимо указать путь к вашему файлу php.exe и затем продолжить установку.
Отметьте чекбокс для добавления в переменную среды PATH, чтобы вы могли просто вызывать Composer при помощи команды composerиз любого места в операционной системе, из любой папки.
Готово!
Проверка
Если всё прошло успешно, то введя команду composer в терминале редактора кода или просто в командной строке (оболочке), вы должны непременно увидеть следующее: