Руководство для начинающих для вставки фрагментов php из интернета в WordPress

Сегодня мы научим вас правильно добавлять фрагменты кода в свой файл темы functions.php. Этот процесс довольно легок для специалистов PHP, но сложен для новых пользователей. Часто новички стремятся быстро написать код или вставить нужный код, но из-за нехватки знаний в PHP, порой приводит к поломке сайта. Это нормально, и если читаете эту статью, значит у вашего сайта проблемы, и мы хотим заверить вас, что Вы не один такой. Все мы совершали подобную ошибку как минимум по несколько раз. Сейчас мы расскажем вам, наиболее популярные ошибки и как избежать их при вставке кода из других источников и материалов в файл functions.php.

Примечание: не путайте файл functions.php расположенный в папке /wp-content/themes/yourthemename/ и файл ядра Wordpess functions.php находящийся в папке /wp-includes/.

Основной код семантики РНР пишется так:

//Это начальный тег

<?РНР

 

//Это конечный тег

?>

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

1-я распространенная ошибка

Владелец сайта вставляет код между тэгами PHP, как показано ниже, но вставляют его неверно.

<?php

add_filter( 'login_headerurl', 'Fcustom_logins_url' );

function Fcustom_logins_url($url) {

    return 'http://AndreyEx.ru';

}

?>

Пример кода functions.php (Примечание. Файл functions.php обычно имеет гораздо больший объем, но смысл тот же):

<?php

//смешивают код PHP с существующим здесь

	 

//Программер вставляет код который он нашёл в интернете

	 

<?php

add_filter( 'login_headerurl', 'Fcustom_logins_url' );

function Fcustom_logins_url($url) {

    return 'http://AndreyEx.ru';

}

?>

?>

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

<?php

//смешивают код PHP с существующим здесь

	 

//Видите, как мы правильно закрыли тег PHP

?>

//Теперь можем открыть тег.

<?php

add_filter( 'login_headerurl', 'Fcustom_logins_url' );

function Fcustom_logins_url($url) {

    return 'http://AndreyEx.ru';

}

?>

Заметьте, насколько мы правильно вставили код после закрытия предыдущего.

Другой способ-просто удалить начальный и конечный теги с вашего нового кода. Так будет выглядеть:

<?php

//смешивают код PHP с существующим здесь

	 

// Новый код просто вставляется сюда (обратите внимание, что мы удалили начальный и конечный тег из вставленного кода)

	 

add_filter( 'login_headerurl', 'Fcustom_logins_url' );

function Fcustom_logins_url($url) {

    return 'http://AndreyEx.ru';

}

?>

2-я распространенная ошибка

У каждого учебника есть свой собственный стиль написания. Некоторые держат их в фрагментах, обматывают тегом PHP, которые вы видели выше. Другие не оборачивают свои фрагменты вокруг PHP-тегом. Это подводит нас к очередной проблемы. Пример:

function Fcustom_logins() {

echo '<style type="text/css">

h1 {background-image: url('.get_bloginfo('template_directory').'/images/logins.png) !important; }

</style>';

}

add_action('login_head', 'Fcustom_logins');

Автор исходит из того, что вы знаете, что этот код должен быть внутри тегов. Некоторые думают, что Вы разместите их код внизу вашего файла functions.php. Пример ошибки новичка:

<?php

//смешивают код PHP с существующим здесь

	?>

	 

//Затем пользователь вставляет код здесь (обратите внимание на PHP-теги которые уже закрыты выше):

	 

function Fcustom_logins() {

echo '<style type="text/css">

h1 a {background-image: url('.get_bloginfo('template_directory').'/images/logins.png) !important; }

</style>';

}

add_action('login_head', 'Fcustom_logins');

Если вы заметили, код вставлен вне тегов. Вордпресс не знает, что это за код, таким образом получается ошибка. Пример правильного кода:

<?php

//смешивают код PHP с существующим здесь

 

//Новый идет здесь

function Fcustom_logins() {

echo '<style type="text/css">

h1 {background-image: url('.get_bloginfo('template_directory').'/images/logins.png) !important; }

</style>';

}

add_action('login_head', 'Fcustom_logins');

	 

//PHP End Tag

?>

3-я распространенная ошибка

Далее последняя ошибка. которая является самой распространенной, когда пользователь вставляет новый фрагмент в пределах существующей функции.

Устройство функции обычно выглядит так:

function Fcustom_function_name() { // это начальный

	 

// код функции идет здесь

	 

} // Это конечный тег

Если поместить одну функцию внутри другой, то она вызывает исключение на вашем сайте. Пример этой ошибки примерно такой:

function Fcustom_name_function() { // здесь начальный тег

	 

	// код функции идет здесь

	 

function Fcustom_login() {

echo '<style type="text/css">

h1 {background-image: url('.get_bloginfo('template_directory').'/images/login.png) !important; }

</style>';

	}

add_action('login_head', 'Fcustom_login');

	 

} // Тут конечный тег

Вы не можете сделать это. Каждая функция являются независимой, поэтому нельзя ставить два вместе. Далее правильный код вставки:

function Fcustom_name_function() { // это начальный тег

	 

// код функции идет здесь

	 

	 

} // Это конечный тег

	 

function Fcustom_login() {

echo '<style type="text/css">

h1 a {background-image: url('.get_bloginfo('template_directory').'/images/login.png) !important; }

</style>';

}

add_action('login_head', 'Fcustom_login');

Выше указанные три ошибки, вероятной причиной, почему ваша тема неисправна, после того как Вы дополнили фрагментом кода ваш файл functions.php

Другие Советы

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

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

Бывают случаи, когда вы сталкиваетесь с длинными фрагментами. Например, наш код формирования сниппета. Авторы имеют тенденцию объяснять код для их пользователей (который является хорошо), но он также приводит к ошибкам в коде. Так, мы делаем прокрутку вниз или вверх, чтобы получить окончательный фрагмент кода, а не собираем все воедино сами.

Узнаете ли вы эти ошибки? Как вы с ними справлялись? Были у вас ошибки, которые мы не упомянули выше? Если да, то поделитесь в комментариях с нами.

Руководство для начинающих для вставки php фрагментов из интернета в WordPress



2015-06-21T22:38:26
CMS WordPress