Назад

PHP для начинающих: начинаем с серверной разработки WordPress

WordPress, система управления контентом, которую любит Интернет. Вы можете использовать ее годами, не прибегая к помощи PHP, но в конце концов вам это понадобится. Вы заходите в Bing и ищете “php для начинающих», и вы оказываетесь здесь. Путь к изучению PHP для разработки WordPress долог, но давайте начнем!

Мы начнем это руководство по кодированию WordPress с небольшого краткого описания роли PHP в WordPress, а затем начнем с этого.

Использование PHP в WordPress: полезно для всех, необходимо разработчикам

На самом деле вам никогда не нужно писать PHP-код в качестве пользователя WordPress, владельца бизнеса WordPress или в другой подобной роли. Меньшинство людей, которые используют WordPress ежедневно, даже знают, что такое PHP, не говоря уже о том, как писать на нем код. Но разработчики WordPress, разработчики WordPress должны использовать PHP. Но я забегаю вперед…

WordPress работает поверх PHP на сервере

Прежде чем мы полностью перейдем к нашему руководству по PHP для начинающих, немного информации:

Оказывается, веб-серверы — это всего лишь компьютеры. И у этих компьютеров должны быть базовые уровни, на которых они могут работать. Для большинства сайтов WordPress это сводится к следующему:

  • Linux (операционная система, такая как Mac OS или Windows),
  • Apache (веб-сервер, с которым взаимодействует ваш браузер),
  • MySQL (база данных, в которой хранятся сообщения),
  • и PHP (который координирует работу с базой данных, операционной системой и файлами для создания веб-страниц).

Я написал гораздо больше об этом в нашей статье “WordPress LAMP”:

WordPress LAMP ?! Введение в инфраструктуру WordPress

PHP — это язык программирования

Итак, надеюсь, вышесказанное заставило вас осознать, что PHP — это то, что WordPress использует под капотом. Это язык программирования, на котором написан серверный код WordPress. (В веб-браузере как администраторов, так и посетителей WordPress часто также используются языки, называемые HTML, CSS и JavaScript).

PHP был одним из первых и самых популярных языков, которые люди использовали для создания HTML-документов (он же “веб-страницы”). Его популярность немного сложнее, чем я хочу здесь описать.

Вкратце: PHP — это язык логического программирования, который вы можете использовать для управления тем, какой HTML отображается на странице, либо в WordPress, либо за его пределами. Файлы, составляющие как темы, так и плагины WordPress, в основном используют PHP для создания страниц, которые вы видите при посещении сайта WordPress в своем веб-браузере.

Изучите PHP для WordPress, и вы сможете изменять темы, создавать плагины

Как мы только что рассмотрели, и плагины, и темы WordPress используют много PHP. (Хотя в 2022 году количество PHP, которое вы увидите в темах, только уменьшилось …) По сути, все в плагине поддерживается написанным вами PHP-кодом. Для темы WordPress некоторые функциональные возможности исходят из WordPress PHP, а некоторые будут в HTML, который вы вводите в файлы шаблонов вашей темы. Как правило, для создания хороших тем вам потребуется меньше знаний PHP, чем хороших плагинов для WordPress, но это важный навык в любом случае.

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

Хуки, действия и фильтры WordPress: что они делают и как работают

Руководство по PHP для начинающих для WordPress

Хорошо, теперь, когда мы разобрались с WordPress, мы можем всерьез приступить к нашему короткому руководству по программированию на PHP для начинающих. Мы сосредоточимся на нескольких основных моментах: как выглядит PHP, какие вещи вы должны понимать, чтобы иметь хоть какой-то смысл в PHP, и какие следующие шаги имеют смысл.

PHP 101: С чего мы начинаем с руководства по PHP для начинающих

Итак, PHP, как мы упоминали выше, начинался как способ создания более динамичного HTML. Таким образом, вы будете знать, что пишете PHP, а не HTML, в .php файле, потому что он будет заключен в так называемые “теги PHP”. Эти теги PHP — это то, что отделяет PHP от вашего HTML, и наоборот. Хотя некоторое взаимодействие все же есть.

Вот пример:

<!-- file.php -->
<html>
<?php echo 'Hi from PHP'; ?>
</html>

Что покажет загрузка file.php с вашего веб-сервера в вашем веб-браузере? Там будут слова “Привет от PHP”. (Слово echo в PHP, по сути, позволяет чему-либо выйти из PHP-interaction-land и отображаться на странице. Более того, если вы просмотрите исходный код страницы в этом браузере, вы также увидите, что <html> открываются и закрываются теги. Там, где это не контролируется, весь HTML из PHP-файла просто отображается в вашем браузере.

Последнее примечание: первая строка, которая начинается <!--, является HTML-комментарием. Комментарии — это строки в коде, которые ничего не должны делать, но могут помочь вам или другому программисту разобраться в программе позже. В PHP большинство комментариев разделены косой чертой «Вперед», // comment here или ограждены /* */ символами, вот так:

<?php
/*
Ничто в этих строках ничего не покажет и не сделает
*/
echo 'Без комментариев'; // То, что находится слева, будет отображаться, но сам этот текст не будет отображаться.
// Так же как и это
?>

Вы также должны обратить внимание, что наша echo строка заканчивается точкой с запятой. Все строки PHP обычно заканчиваются { (о которых подробнее позже) или точкой с запятой ;. Утверждения типа echo всегда должны заканчиваться точкой с запятой. Это довольно странное соглашение для многих языков программирования.

Переменные, целые числа и строки!

Мы только что показали ваш первый тип данных PHP: строка. “Строка” — это распространенный термин в языке программирования, обозначающий последовательность символов. В нашем конкретном случае, приведенном выше, нашей строкой была последовательность символов “Привет из PHP”. В PHP строку можно отличить от других слов (тех, которые являются просто самой программой) с помощью одинарных или двойных кавычек. Итак, оба они равны:

<?php 
$val = "Привет Земляника!";
$val = 'Привет Земляника!';
echo $val;

Что будет делать вышеупомянутое? В вашем веб-браузере отобразится “Привет, Привет Земляника!”. Как? С помощью переменной. Что такое переменная ?! Отличный вопрос. Переменная — это сохраненное значение. Этот термин распространен в большинстве языков программирования, включая PHP. Переменными могут быть многие вещи: строки, целые числа (например, 1, 2, 99, 12931298), числа с плавающей запятой (0.123, 4.39, 6.928348723074082370974092384), вещи, называемые массивами или объектами, и многое другое.

В PHP имена всех переменных будут начинаться со знака доллара ($). После этого знака доллара у них будет по крайней мере один символ, который является уникальным. Если вы, как мы делаем выше, задаете (используя знак равенства) переменную дважды (или более), она всегда будет иметь значение, установленное позже. Вы можете использовать это, чтобы “варьировать” значение переменной. (Приведенный выше код этого не делает.)

Вы также заметите, что в последнем примере кода у нас не было “закрывающего PHP тега” ?>. Это потому, что они не являются строго необходимыми в конце .php файла. Иногда они используются, но если вы не собираетесь возвращаться в “страну HTML”, рекомендуется не использовать закрывающие PHP теги в конце файлов.

Функции: С чего вы начинаете изучать PHP для разработки WordPress

Еще одна вещь, которую мы должны рассмотреть, чтобы завершить наше небольшое руководство по PHP 101, WordPress PHP tutorial, — это функции. Функции в PHP — это, по сути, другое название «хранимых процедур”. Хранимая процедура может быть чем-то таким же простым, как сумматор, который суммирует два значения вместе, или функция “show-er”, которая просто показывает определенную строку.

Базовая функция добавления в PHP будет определена следующим образом:

function add($first_number, $second_number) {
    return $first_number + $second_number;
}
$value = add(1, 3); // $value установлено значение 4
echo $value; // показывать $value в HTML/браузере

Слово function сообщает PHP, что следующим, что он должен увидеть, будет название функции. Затем идут круглые скобки с тем, что называется ”аргументами“ или «параметрами”. Функция не может иметь параметров, которые выглядели бы как function no_arguments() {}.

Наконец, большинство функций будут возвращать что-то, хотя им это и не обязательно. В PHP функция возвращает одну (1) вещь. В нашем случае наша функция возвращает число. Важно знать, что возвращаемое значение по умолчанию не отображается в вашем браузере. Вместо этого его можно отобразить с помощью echo, сохранить в переменной типа $value, чтобы с ним выполнялись дальнейшие операции.

Вот почему в приведенном выше коде HTML не показывал бы ничего из нашего PHP-кода, пока мы не сделали наш echo $value, который показывает значение, хранящееся в $value переменной, которое для этого конкретного кода будет равно 4.

Основные условия (If, Then, Else)

Еще одна вещь, от которой вы получите большую пользу при изучении PHP для WordPress, — это привыкание к условным операторам. Если вы способны прожить день в современном мире, вы понимаете условную логику. И одна из забавных и удивительных вещей в изучении PHP для большинства новичков заключается в приятном потрясении от того, насколько “нормальная” условная логика в PHP (и многих других языках) похожа на нормальное мышление. Синтаксис немного похож на этот:

$value = 5;
if ($value > 5) {
    execute_function();
} else {
    echo 'Too small';
}

Что произойдет в приведенном выше PHP-коде?

  1. Вызывается и выполняется функция без параметров execute_function, или
  2. строка 'Too small' будет напечатана в HTML?

Если вы догадались, что будет вызвана функция (# 1), возможно, вы забыли, что > это знак “больше, чем”, и что 5 не означает “больше, чем” 5. Я думаю, что приведенный выше код гласит: “Если $value больше пяти, вызовите функцию execute_function. В противном случае, echo 'Too small'“.

endifendwhile и других условных синтаксисов

Вы также должны отметить, что в приведенном выше примере кода наша логика была заключена в “фигурные скобки”, {}. Это распространено в PHP и многих других языках. Эти фигурные скобки являются уникальным и полезным разделителем разницы между различными условиями.

В PHP, поскольку вы часто смешиваете его с HTML, иногда логически получается висячая закрывающая фигурная скобка <?php } ?>. Это раздражающе сложно понять. Поэтому, особенно в ситуациях, связанных с HTML (например, с файлами шаблонов классических тем WordPress), многим людям нравится использовать более подробные условия. Итак, следующие строки имеют точно такой же результат, как и то, что мы видели выше:

$value = 5;
if ($value > 5):
    execute_function();
else: ?>
    Too small
<?php endif; ?>

Здесь есть несколько больших изменений. Самое важное из них — мы перешли с фигурных скобок на двоеточия : и an endif;. Они работают одинаково, но одно из них делает закрытие какого тега совершенно понятным. Висячие фигурные скобки — неподходящее время, особенно когда вы переходили с HTML на PHP и обратно. Это всегда было обычным явлением в классических файлах тем WordPress из-за так называемых условных тегов WordPress.

Но прежде чем мы перейдем к этому: другое изменение, которое мы внесли, это то, что мы изменили echo 'Too small'; только на буквальные слова “Слишком маленький”, за пределами тегов PHP. echoиспользование PHP-кода — это то же самое, что простое помещение значения вне PHP-тегов в файл. В этих сценариях применяется та же логика PHP. Таким образом, в этом случае “Слишком маленький” по-прежнему будет отображаться только тогда, когда $value меньше или равно 5.

Еще немного о PHP и HTML для серверной разработки WordPress (особенно темы 🤓)

Основные причины для понимания PHP-тегов, таких как endif, заключаются в том, что вы часто увидите их в PHP-файлах тем WordPress. Вот небольшой фрагмент одного из них.:

<header class="entry-header">
    <?php
    if ( is_singular() ) :
        the_title( '<h1 class="entry-title">', '</h1>' );
    else :
        the_title( sprintf( '<h2 class="entry-title"><a href="%s" rel="bookmark">', esc_url( get_permalink() ) ), '</a></h2>' );
    endif;
    ?>
</header><!-- .entry-header -->

Здесь вам многого не нужно понимать, но я хочу помочь вам разобраться в нескольких частях. Это странная смесь HTML, например, <header>, и PHP.

Самое важное, чему стоит научиться из этого: тот факт, что теги PHP заканчиваются и начинаются внутри документа (template-parts/content/content.php файла темы Twenty Nineteen), и что вызываемая функция “условный тег WordPress” is_singular вызывается для изменения разметки функции, которая показывает заголовок публикации в WordPress. Функция отображения заголовка в WordPress называется “заголовок”, и ее аргументами здесь являются the_title()специфическая разметка (для до и после того, что вы ввели в поле “Заголовок”). Этот код содержит HTML в строках PHP (обычная вещь в WordPress) и использует «тег шаблона публикации“ и ”условный тег WordPress». Это многое из того, что вы часто увидите в WordPress.