Шаблоны и условная логика с ООП в WordPress
Шаблоны становятся все более распространенными в WordPress, и я считаю, что это хорошо.
Но это не означает, что мы не управляем проектами, в которых используется более традиционный подход к отображению шаблонов или партиалов. Кроме того, это также не означает, что мы освобождаемся от поддержки кодовых баз, в которых используется код, не использующий механизм шаблонов.
Хотя я думаю, что шаблоны — это хорошо, я не думаю, что это всегда необходимо. Однако это содержание для другого поста.
Вместо этого я хочу пройти через процесс использования условной логики того, следует ли отображать частичное в шаблоне, и сделать это с помощью объектно-ориентированного программирования.
Шаблоны и условная логика с ООП
Для этого предположим следующее:
- У нас есть один плагин, который зависит от другого плагина для функции.
- Второй плагин является необязательным.
- Если его нет, мы покажем уведомление. Если он присутствует, то мы будем отображать партиал.
Достаточно прямолинейно, верно?
Единственное, что следует отметить, это то, что вся эта логика будет храниться в основном плагине (то есть в том, который будет проверять наличие другого плагина).
1 Условная логика шаблона
Первое, что нужно сделать, это иметь функцию, которая будет проверять наличие вторичного плагина. Причина этого в том, что шаблон выглядит примерно так:
И тогда партиал может выглядеть примерно так (это зависит от вашей реализации):
Из-за того, как шаблоны включены в WordPress, функция будет жить внутри класса, и класс будет проверять наличие плагина.
Если вы используете какой-либо сниффер кода, он, скорее всего, вызовет предупреждение о том, что метод не используется, но метод используется, он просто используется в файле шаблона. Примечание в классе. Все это говорит о том, что некоторые из наших снифферов не настолько умны. Пока что.
2 Серверный код плагина
Как только вы получите общее представление о том, как это будет работать, пришло время написать код в вашем классе.
Помните, это простая функция: ей просто нужно проверить наличие плагина. Вы можете сделать это несколькими способами, но наиболее распространенным может быть использование API-функции is_active_plugin .
Обратите внимание, что при использовании этой функции предполагается, что вы знаете имя используемого плагина. Если нет, есть и другие способы, но это выходит за рамки этого поста.
В любом случае, поскольку логика является условной, она должна возвращать логическое значение, и это именно то, что делает приведенная выше функция API. Таким образом, серверная функция может выглядеть примерно так:
А так как код шаблона вызывает эту функцию (которую вы видите выше), он определит, нужно ли показывать партиал или нет.
Достаточно легко
Для некоторых это действительно простые вещи; для других это совершенно другой подход, поскольку он имеет дело с большим разделением интересов.
И поскольку я продолжаю работать над основами ООП с участниками сайта, я думаю, что важно также поделиться некоторыми лучшими практиками с теми, кто, возможно, не является участником, но хочет писать более организованный код.