PHP в WordPress. Что нужно знать?

Опубликовано: 01.09.2018

видео PHP в WordPress. Что нужно знать?

Из HTML в WordPress для новичков (Часть 1) / HTML to WordPress for beginners (Part 1)

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



На моем блоге также есть пост про использование MySQL в WordPress — о том, как правильно создавать запросы, используя предназначенный для этого класс $wpdb.

Это немного дополненный старый пост, поэтому тут уже сотня комментов ????

Конечно, очень наивно полагать, что возможно охватить все основы PHP в одной статье, но я очень постараюсь.


Не загружается Elementor. Memory Limit в WordPress

Одна простая истина. Или даже две. 

Я буду предполагать, что вы уже знаете HTML, и в статье буду это подразумевать как само собой разумеющееся.

Вам ничего не стоит создать у себя на рабочем столе текстовый файл, назвать его file.html и начать фигачить туда HTML код страницы. И у вас всё получится, в браузере всё откроется, но вот только если там будет содержаться PHP-код, то он не выполнится! JavaScript выполнится, вы уже знаете, а вот PHP нет.


Из HTML на WordPress для новичков (Урок 3). Делаем Шапку в header.php / HTML to WordPress (Part 3)

Есть такая вещь, как локальный сервер Apache… Знаете? Прекрасно — можете использовать. Но мы сейчас идём по лайту и поэтому я скажу следующее — чтобы выполнить PHP код, вам нужно 1) зарегать хостинг 2) использовать PHP-код внутри файлов с расширением .php.

Это была первая истина.

Вторая истина заключается в том, что сам код PHP должен находиться внутри <?php и ?>. Это как JavaScript находится между <script> и </script>. Вы даже можете использовать спокойно HTML внутри .php-файлов, главное, чтобы сам исполняемый код был внутри этих скобок. Это вторая истина. Пример:

<h1> <?php // здесь будет какой-то PHP код ?> </h1>

О, так я и с комментариями вас познакомил! Когда строка начинается с //, то всё, что идёт дальше этих символов на строке, кодом не воспринимается, то есть это просто пометки для самого кодера. Для вас!

Функции. Часть 1. 

Всё основывается на функциях. Функция — эта такая штуковина, в которую мы можем передать какие-то значения (но не всегда) и она порадует нас каким-то результатом (но тоже не всегда).

Начнём с невероятно простых вещей. Создайте .php-файл у вас на сервере и вставьте туда этот код:

После этого откройте файл в браузере, например http://вашсайт/test.php или же просто http://вашсайт, если вы назвали свой файл index.php (да, index.php — этот тот файл, который открывается в папке (директории) по умолчанию, если в URL вы обращаетесь именно к папке, а не к файлу).

В общем, функция phpinfo() просто выведет инфу о сервере. Понятную и не очень.

А что, если мы хотим продолжить в этом же файле, например в начале или в конце мы ещё выведем текущий год. Так вот, вторую функцию вы можете вставить с новой строки, а можете продолжать на этой же — главное лишь наличие точки с запятой между ними!

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

<?php phpinfo ( ) ; // возьмите за привычку после любого действия в PHP-коде сразу ставить ";" echo date ( 'Y' ) ; // параметр 'Y' как раз означает вывод года. ?>

Тут один момент — сама функция date() не выводит дату, а только возвращает (сейчас вы узнаете, что это), а phpinfo() сразу выводит. Поэтому перед функцией date() мы ещё добавили echo, что как раз означает вывод. Сейчас расскажу подробнее.

Числа, строки и…  

Да, начнём с функции echo (вы заметили, что она без скобочек? да, ей скобки не нужны). Выведем какое-то число:

echo 12345; // скобки <?php я не буду ставить в каждом коде для своего удобства : )

Всё просто, верно?

Для строк (это по сути текст) нам просто нужно обрамлять их в двойные или одинарные кавычки. Например:

Тут так же хочу обратить ваше внимание, если внутри находятся ещё одни кавычки, то их нужно экранировать или использовать другие. Например, если нам нужно вывести It's a beautiful life., то можно сделать это двумя способами:

echo "It's a beautiful life." ;

Или

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

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

Переменные 

Для тех, кто совсем-совсем начинающий, что такое переменные?

Как бы это объяснить, сейчас это слово подразумевается как какая-то ну совсем очевидная вещь. Начнём с того, что переменная, это какое-то слово (или набор символов — весь латинский алфавит, цифры, знак подчеркивания и… начинаться должно с символа алфавита и…вроде всё?). В PHP перед этим словом ещё ставится знак доллара, та-дам, всеми любимый из математики $x. С единственным тем отличием, что в матеме во многих случаях нужно было найти его, и даже если его не нужно было находить, мы его всё равно не знали, тут же мы всегда примерно знаем его значение.

Теперь давайте предположим, что у нас есть какой-то кусочек контента, например кусок текста или офигенно сложное для запоминания число. И чтобы долго с ним не возиться, в один прекрасный момент мы записываем его в $x, например вот так:

Знак равно это очень важная в программировании вещь (да-да, именно вещь — не собираюсь загружать вас терминами), которую мы назовем словом присваивание, то есть у нас был какой-то $x (а может его и не было вовсе), затем мы взяли и присвоили ему значение 1234567890 и теперь $x равен этому значению.

Теперь мы уже можем вывести не число, а именно переменную:

$x = 1234567890 ; echo $x ;

И ещё один супер-пример. Предположим. Что нам нужно вывести число 7 раз! Не уверен, что такое понадобится, но предположим!

А теперь скажите, какой вариант кода вам нравится больше — первый или второй.

Это первый:

echo '1234567890' ; echo '1234567890' ; echo '1234567890' ; echo '1234567890' ; echo '1234567890' ; echo '1234567890' ; echo '1234567890' ;

Это второй:

$x = '1234567890' ; echo $x ; echo $x ; echo $x ; echo $x ; echo $x ; echo $x ; echo $x ;

Ну что? А если я скажу вам изменить это число, то где вы быстрее внесёте изменения — в первом куске кода или во втором?

Действия с переменными

Обычные действия: присвоение, сложение, умножение, деление, вычитание.

$privet ='привет чуваки!' ; $r = 1 ; $go = 4 ; $r = $r + $go ; $r = 4 + $r / 5 ; $r = 2 * ( $r - $go ) ; $r ++; // это означает $r=$r+1; $r --; // $r=$r-1;

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

Объединение переменных:

$privet = 'привет' ; $znak = '!' $result = $privet . ' чуваки' . $znak ; // $result будет равно 'привет чуваки!' $result = $privet . $znak ; // теперь $result будет равно 'привет!'

… и массивы 

Массивы — это ну очень важная вещь, в двух словах постараюсь их описать, но рекомендую поискать больше информации о них и попрактиковаться в их использовании.

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

Например 1, 2, 'текст', 98 — это массив из четырех элементов, при этом отсчет начинается с нуля — нулевой элемент равен единице, первый — двойке, третий — строке текста и т.д.

Давайте зададим этот нехитрый массив в переменную:

$massivchik = array ( 1 , 2 , 'текст' , 98 ) ;

Что с ним делать-то теперь? На самом деле много чего, в документации PHP вы можете посмотреть функции, которые могут удалять элементы массива, сортировать их и т д, а мы же выведем из него второй элемент — двойку.

echo $massivchik [ 1 ] ; // выведет 2 // если же хотите вывести абсолютно весь массив, то print_r( $massivchik );

Давайте добавим ему пятый элемент:

$massivchik [ ] = 'ну массив' ; // array( 1, 2, 'текст', 98, 'ну массив');

Вы обратили внимание, что у каждого элемента массива есть свой числовой индекс? Запомните этот важный момент.

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

$supermassive = array ( 'chislo' => 1 , 'text' => 'Privet' , 'text2' => 19303 ) ;

Думаю не нужно объяснять, что названия ключей должны быть уникальны. И небольшой пример вывода по ключу:

echo $supermassive [ 'chislo' ] ; // а может мы просто хотим присвоить элемент массива в отдельную переменную, тогда $y = $supermassive['chislo'];

А ещё мы можем изменить значение элемента:

$supermassive [ 'chislo' ] = 5 ; // точно так же кстати можно добавить и новый элемент

Ну всё, говорю же, старался покороче ???? Если есть вопросы — скидывайте в комментарии к посту.

Функции. Часть 2. 

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

название_функции (параметры_через_запятую );

В PHP и в WordPress уже существует набор готовых функций, которые удобно использовать при создании блога. Также вы можете задавать и свои функции:

function название_функции ( параметры_в_виде_переменных ) { выполняющийся код; }

Примеры:

Функция echo выводит на экран то, что указано в ней, иногда пишется со скобками, но я пишу без. Да, знаю, что уже упоминал её, но практики лишней не будет.

$privet = 'привет' ; // для удобства зададим переменную echo 'привет' ; // выведет привет echo $privet ; // привет echo $privet . ' чуваки' ; // привет чуваки echo '$privet чуваки' ; // $privet чуваки echo " $privet чуваки" ; // привет чуваки // видите разницу между двойными и одинарными кавычками? В одинарных кавычках переменные воспринимаются как текст, а в двойных как переменные.

Вот так всё это можно засунуть в HTML -код:

<h1> <?php echo $privet ?> </h1>

Зададим собственную функцию:

function privet ( ) { echo 'привет' ; }

После того, как функция задана (в WordPress они все обычно задаются в файле functions.php в темах — для начала задавайте там, а потом разберетесь), её можно использовать в любой части сайта сколько угодно раз:

<h1> <?php privet ( ); ?> </h1><span> <?php privet ( ); ?> </span>

Теперь создадим функцию с параметрами:

function hello ( $m , $n = 'значение по умолчанию' ) { // у переменных можно указать значения по умолчанию, тогда параметр становится необязателным echo $m . ' ' . $n ; // кавычки здесь нужны, чтобы вывести пробел между словами } // пример выполнения $privet = 'привет' ; $dude = 'чуваки!' ; hello ( $privet , $dude ) ; // после того, как начинает действовать функция, эти переменные превращаются в $m и $n в том же порядке, в котором указаны

Параметры $m, $n существуют только внутри функции, то есть под конец они уничтожаются, поэтому перед тем, как функция закончится, их надо либо вывести, либо сохранить их значения в других переменных. Для этого существует функция return

function hello ( $m , $n ) { $m = $m . ' ' . $n ; // как видите, так тоже можно изменять значение переменной return $m ; }

Пример выполнения 1.

$privet = 'привет' ; $dude = 'чуваки!' ; $result = hello ( $privet , $dude ) ; // $result будет присвоено значение $m echo $result ;

Пример выполнения 2, результат будет одинаковый.

$privet = 'привет' ; $dude = 'чуваки!' ; echo hello ( $privet , $dude ) ;

Также существуют такие вещи как return true и return false — это логическое ДА и логическое НЕТ — они в основном нужны для условий, о них уже в следующей главе.

Условия: 

if ( условие ) { // если действие только ОДНО, то { } скобки не обязательны действие; } elseif ( условие ) { // второе условие, в случае, если первое не выполняется действие; } else { // в случае если ни одно из условий выше не выполняется действие; }

Примеры:

if ( $x == 2 ) echo $x ; // если $x равен 2 if ( $x != 2 ) echo $x ; // если $x не равен 2 if ( $x < 2 ) echo $x ; if ( $x > 2 ) echo $x ; if ( $x <= 2 ) echo $x ; // если $x меньше или равно 2 if ( $x >= 2 ) echo $x ; // если $x больше или равно 2 if ( $x ) echo $x ; // если $x существует и не равен нулю if ( isset ( $x ) ) echo $x ; // если $x существует и возможно равен нулю if ( !$x ) echo $x ; // если $x не существует, но возможно равен нулю if ( !isset ( $x ) ) echo $x ; // если $x не существует и не равен нулю

Несколько условий:

if ( $x == 2 && $y < $x ) echo $y ; // если $x равен двум И (должны выполняться одновременно оба условия) $y меньше $x if ( $x == 2 || $y < $x ) echo $y ; // если ИЛИ $x равен двум ИЛИ (получается должно выполняться хотя бы одно условие) $y меньше $x

Пример посложнее:

if ( isset ( $result ) ) { if ( $result < 5 ) { echo '$result = ' .$result .'<br />' ; echo 'значение переменной меньше 5' ; } elseif ( $result > 5 ) { echo '$result = ' .$result .'<br />' ; echo 'значение переменной больше 5' ; } else echo 'значение переменной равно 5' ; } else echo '$result не существует' ;

Циклы 

Есть несколько видов циклов, но нам пока будет достаточно самого распространённого:

while ( условие ) { // до тех пор пока условие выполняется, действие будет повторяться действие; }

Пример:

$result =0 ; while ( $result < 5 ) { echo $result ; $result ++; } // в результате этот код выведет цифру 01234

Также добавлю, что когда у нас имеется какой-то массив и нам нужно прокрутить его через цикл, например вывести все его элементы, то это очень удобно сделать через цикл foreach().

$numbers = array ( 1 , 4 , 7 , 9 ) ; foreach ( $numbers as $number ) { // для каждого элемента массива // тут $number уже - конкретный элемент массива для конкретного итерации массива (повторения) echo $number ; } // должно получиться просто 1479

Альтернативные записи условий и циклов

В WordPress всё это часто записывается в другом виде, но смысл остаётся тем же:

if ( условия ) : действия; elseif ( условия ) : действия; else : действия; endif ; // конец условия
while ( условия ) : действия; endwhile ; // конец цикла

Примеры на этот пункт вы найдёте практически в любой теме для WordPress.

Смотрите также

rss