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

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

Переменные

Переменная присваивается так:

$a = 9;

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

Типы данных

Данные в PHP бывают:

  • integer (int) — целые числа;
  • float — дробные числа;
  • string (str) — строка (текст);
  • array — массив.

Массивы

Массив — это структура данных, хранящая набор значений. В массиве могут хранится любые типы данных. В WordPress мы в 99,9% храним текст (string).

Нумерация элементов массива начинается с 0. Массиву присваивается переменная, а вызывается в квадратных скобках — $e[2], — выведется 3й элемент массива, присвоенный переменной e.

Простой массив

Хранит только данные.

$e = array(
'Ihor',
'Serdiukov',
'34',
'webmaster',
);

Вывод элемента массива:

echo $e[2];

На экране увидим: 34.

Ассоциативный массив

Массив, помимо данных может содержать и ярлыки, такой массив называется ассоциативным.

$e = array (
'name' => 'Ihor',
'sname' => 'Serdiukov',
'age' => '34'         
)

Чтобы, в данном примере, вывести фамилию нужно написать:

echo $e['sname'];

Многомерный массив

Массив может содержать другой массив, а тот массив еще один массив, и так до бесконечности. В моем блоке «Биография по годам», как раз используется многомерный массив:

$value = array(2) {
    ["number"]=>
    string(4) "2022"
    ["events"]=>
    array(2) {
      [0]=>
      array(2) {
        ["color"]=>
        string(14) "красный"
        ["text"]=>
        string(25) "текст события"
      }
    }

Выводится элемент многомерного массива так:

echo = value['events']['color'];

Но чаще всего массивы перебираются с помощью циклов.

Циклы

Есть 3 вида циклов:

  • for — повторяет одно и то же действие нужное количество раз;
  • while — выполняется до тех пор, пока верно (истинно) выражение, переданное ему параметром;
  • foreach — используется для перебора массива.

Синтаксис:

Цикл for:

for (начальные команды; условие окончания цикла; команды после прохода цикла) {
тело цикла
}

Цикл while:

while (пока выражение истинно) {
код, который выполнится много раз; 
}

Цикл foreach:

foreach ($arr - имя_массива as $elem – переменная_для_элемента_массива) {
Код, который находится между фигурными скобками будет повторяться столько раз, сколько элементов у массива.
}

Признаться честно, я пока с циклами работаю так себе.

Конкатенация

Конкатенация — это объединение нескольких переменных или частей кода в одну строку с разделителем.

echo $a . 'разделитель' . $b;

Разделителем может быть любой символ или текст.

Условия

Именно условия я использую чаще всего. Условие может быть:

  • простым – if (условие) {выполнить код};
  • двойным – if (условие) {выполнить код} else {иначе, выполнить код};
  • многомерным – if (условие) {выполнить код} elseif (условие) {выполнить код} else {иначе, выполнить код}.
elseif (условие) может быть столько, сколько нужно.

Сами условия могут быть следующими:

  • == – равно;
  • != – не равно;
  • >= – больше либо равно;
  • <= – меньше либо равно;
  • > – больше;
  • < – меньше;

Но чаще всего я использовал проверку на заполнение произвольного поля, выглядит так:

<?php if (get_field('celebName1')) { ?>
блок кода
<?php } ?>

Дебаг

Умение разобраться в проблеме, это по сути основа начинающего программиста. Мне в этом помогли 2 инструмента:

  1. плагин Query Monitor. Он выводит ошибки, показывает строку где косяк;
  2. подсветка кода, особенно фигурных скобок, в которых я постоянно путался. Для подсветки кода я использовал Visual Studio от Microsoft, с плагином, который раскрашивает фигурные скобки;
  3. команда var_dump().

По синтаксису var_dump:

var_dump(переменная);

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

Ковычки

Разница между » и «»:

  • Если нужно вывести только текст, то пишем ‘тут любой тест без беременных’.
  • Если в коде содержится переменная, которую нужно вывести, то пишем в «Мой возраст: $j».

Используйте обратный слэш \ для того, чтобы символы не воспринимались именно как эти символы, а как обычный текст:

echo 'It\'s a beautiful life.';

HTML внутри переменной

Есть два способа присвоить переменной какой-то кусок кода:

Пример 1:

$Value = 
<<<HTML
<div class="class32">
      <a class="card" href="{$link}">
        <img class="{$celclass}" src="{$img}" alt="{$alt}">
		<div class="card__top">
			<img class="{$celebclass2}" src="{$img}" alt="{$alt}"></div>
        <p class="card__name">{$title}</p>
        </div>
      </a>
    </div>
HTML;

Пример 2:

$Value = $MovieTheatreTerm->name.' '.'<span class="description">('.$MovieTheatreYears.')</span>';