Переменные в PHP и WordPress

Рассмотрим что такое переменные (variables) в языке программирования PHP и их использование. Кроме того мы поговорим о переменных сразу с практической точки зрения на примерах использования переменных в разных CMS (например, WordPress).

Переменные в PHP
Переменные в PHP

Знакомство с переменными в PHP и WP

Вы, наверное, уже видели код, который включает знак $ (доллар) в PHP коде:

$output

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

Переменная — это то, что вы можете создать (объявить) и использовать в PHP-коде вот так:

add_action( 'genesis_after_header', 'using_variables' );

function using_variables() {
    $text = "Hello World";
    echo $text;
}

Это пример использования переменных в WordPress.

Суть простая — переменную можно считать неким ящиком в котором что-либо хранится.

Имена переменных

Когда Вы создаете переменную, Вы всегда начинаете со знака доллара $, а затем создаете описательное имя для переменной, подобное этому:

$My_Name

После того, как вы создали переменную, вы можете присвоить ей значение следующим образом:

$My_Name = "Brad";

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

$My_Name = "Brad";
echo $My_Name;

Имена переменных с учетом регистра

Этот код не будет работать:

add_action( 'genesis_after_header', 'case_sensitive_variable' );

function case_sensitive_variable() {
    $My_Name = "Brad";
    echo $my_name;
}

И этот не будет:

add_action( 'genesis_after_header', 'uppercase_lowercase_variables' );

function uppercase_lowercase_variables() {
    $My_Name = "Brad";
    echo $MY_NAME;
}

Числа в именах

Использование чисел в переменных возможно. Рассмотрим это на паре примеров.

Это не сработает:

add_action( 'genesis_after_header', 'case_sensitive_variable' );

function case_sensitive_variable() {
    $1my_name = "Brad";
    echo $1my_name;
}

Этот код работает:

add_action( 'genesis_after_header', 'numbers_in_variables' );

function numbers_in_variables() {
    $my1_name = "Brad";
    echo $my1_name;
}

Еще раз повторим — переменные всегда должны начинаться со знака доллара $, за которым следует символ или подчеркивание.

Важно! Использование чисел в именовании переменных не рекомендуется.

Вывод переменных

Теперь мы можем подключить приведенный выше код и вывести значение переменной в пользовательской функции (в файле функций темы) следующим образом:

add_action( 'genesis_after_header', 'using_variables' );

function using_variables() {
    $My_Name = "Brad";
    echo $My_Name;
}

Или мы можем обернуть код открывающими и закрывающими тегами PHP и использовать код в файле шаблона следующим образом:

<?php 
    $My_Name = "Brad";
    echo $My_Name;
?>

Вышеупомянутая переменная работает только в внутри той функции, которая определена, что означает, что вы не можете взять переменную $My_Name и использовать ее в другой функции, например:

add_action( 'genesis_before_header', 'using_variables_in_other_functions');

function using_variables_in_other_functions() {
    echo $My_Name;
}

Единственный способ использовать переменную в другой функции — изначально объявить ее вне функции (в вашем файле функций):

$My_Name = "Brad";
// дальше идут функции, где будет использоваться переменная

Вам нужно будет использовать ключевое слово global следующим образом:

add_action( 'genesis_after_header', 'using_variables' );

function using_variables() {
    global $My_Name;
    echo $My_Name;
}
Справка. Лучше использовать соответствующие функции API, когда они доступны, вместо непосредственного изменения глобальных переменных.

Переменные в Genesis

Для примера рассмотрим использование PHP переменных в Genesis — фреймворке от StudioPress.

Следующий код включает 2 переменные с именами $link и $output:

add_action( 'genesis_after_header','variable_output' );

function variable_output() {	
    $link = esc_url( 'http://example.com' );  
    $output = sprintf( '<a href="%s">' . __( 'Your link text here' ) . '</a>',  $link  ); 	
    echo $output;
}

Следующий код включает в себя 1 переменную с именем $link, которая равна постоянной ссылке на статью:

add_action( 'genesis_after_header','variable_output' );

function variable_output() {	
    $link = esc_url( get_permalink() );
    printf( '<a href="%s">' . __( 'Link text' ) . '</a>',  $link  ); 
}

В приведенном выше коде для вывода форматированной строки используется printf.

Этот фрагмент кода позволяет вам изменить значение по умолчанию для исходной переменной, уже объявленной в Genesis, через файл функций дочерних тем, используя функцию фильтра.

//* изменить текст заголовка комментария в комментариях
add_filter( 'genesis_title_comments', 'sp_genesis_title_comments' );
function sp_genesis_title_comments() {
	$title = '<h3>Обсуждение</h3>';
	return $title;
}

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

Позже →

Опубликовано 12 января 2023 в 23:51
Обновлено 9 января 2024 в 14:12
Категория: Блог
Теги: