Руководство для новичков: вставка фрагментов кода PHP из Интернет в файлы темы WordPress

Примечание: Этот текст может содержать некоторые партнерские ссылки, а это значит, что я зарабатываю небольшую комиссию без каких-либо дополнительных затрат с вашей стороны, если вы воспользуетесь этими ссылками. Спасибо за понимание и поддержку.

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

Есть очень много сайтов в Рунете, где можно найти учебные материалы, помогающие новичкам в освоении системы WordPress. И мой блог — не исключение. Практически в каждой статье, рассказывающей о той или иной функции или функционале, вы найдете фрагменты кода PHP, который нужно добавить в файлы вашей темы. Люди, не знакомые с синтаксисом PHP, делают это автоматически копируя и вставля код PHP, не обращая внимание на его правильность.

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

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

А вы, слепо копируя код, пытаетесь его вставить в файлы своей темы и автоматически переносите код PHP с ошибкой.

На своем блоге я долгое время использовал специальный плагин WordPress под названием — SyntaxHighlighter Evolved. С помощью короткого кода [php]здесь код PHP[/php] я вставлял код PHP в текст своих Записей и вы могли его использовать (копировать).

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

Я удалил плагин, проверил все записи и удалил короткие коды [php], который использовал для вставки кода PHP в текст своих публикаций. Но не везде, кое-где еще попадается. И вот пару дней назад в переписке с одним из читателей я убедился, что короткий код в некоторых записях остался. Теперь он виден читателям и многие новички воспринимают его как часть кода PHP, копируют функции и части кода PHP из примеров, вставляют на своих сайтах и пишут, что у них не работает ((

Сейчас я стал использовать другой плагин WordPress для вставки кода PHP в своих записях. Этот плагин тоже использует короткий код, но сам код PHP я размещаю на стороннем ресурсе, который называется — Pastebin, и плагин только транслирует код PHP с этого ресурса.

Правильный синтакс кода PHP

Основная семантика кода PHP выглядит так:

// Это открывающийся тег кода PHP
< ?php
 
// Между начальным и конечным тегами PHP может находиться очень много разных функций PHP!!!
 
// Это закрывающийся тег кода PHP
?>

Между начальным и конечным тегами PHP можно разместить огромное количество функций PHP.

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

Чаще всего авторы советуют вставлять эти функции в файл functions.php вашей активной темы WordPress. И вот здесь начинаются ошибки. Ошибки семантики WordPress.

Я расскажу о нескольких, самых типичных ошибках семантики PHP.

Ошибка первая — двойное использование тегов PHP

Например, вы находите пример кода PHP, копируете его и вставляете в файл functions.php:

< ?php
//Tons of mumble jumble PHP code that already exists in your PHP file is here
 
//User would copy and paste the snippet they found on the web like this:
 
<?php
add_filter( 'login_headerurl', 'custom_loginlogo_url' );
function custom_loginlogo_url($url) {
        return 'https://bestplugins.ru';
}
?>
?>

Обратите внимание: у вас 2 раза повторяются начальный и конечный теги PHP

Решение:

  • вариант первый — удалите лишний начальный и конечный тег PHP;
  • вариант второй — вынесите добавленный фрагмент кода PHP за пределы тегов PHP:
< ?php
//Tons of mumble jumble PHP code that already exists in your PHP file is here
 
//See how we properly closed the first open PHP tag
?>
//Сейчас вы можете открыть новый начальный тег PHP
< ?php
add_filter( 'login_headerurl', 'custom_loginlogo_url' );
function custom_loginlogo_url($url) {
        return 'https://bestplugins.ru';
}
?>

Ошибка вторая — код PHP не обернут в начальный и конечный теги PHP

Очень часто, на очень многих сайтах (и я не исключение) авторы публикуют примеры кода PHP, не оборачивая его в начальный и конечный теги PHP. Почему? Авторы предполагают, что вы знаете, что любая функция PHP обязательно! начинается с специального начального тега PHP и заканчивается обязательно! специальным конечным тегом PHP. Пример смотрите выше.

Поэтому, прежде, чем вы станете копировать код PHP, внимательно его посмотрите. Если он имеет начальный и конечный теги PHP — тогда вы или

  • Вставляете код PHP внутри существующих начального и конечного тегов PHP в вашем файле PHP, копируя без этих тегов!
  • Вставляете код PHP ниже конечного тега PHP, используя новые начальный и конечный теги PHP!

Среди общих ошибок синтаксиса PHP чаще всего встречаются ситуации, когда пользователь невнимательно копирует код с какой-нибудь публикации, перенося его в файлы своей активной темы: не учитывает начальный и конечный теги PHP, при копировании теряет первую или последнюю строки кода, особенно конечные, в которых бывает только один символ — фигурная скобка закрывающейся функции — }

Все эти ошибки и приводят к появлению сообщения типа:

Parse error — syntax error, unexpected $end in /public_html/site1/wp-content/themes/my-theme/functions.php on line 278

Главное — не паниковать, а внимательно прочитать строку вывода ошибки. В ней надо обратить на два главных и важных момента:

  1. На какой файл ссылается ошибка (в примере выше — файл активной темы под названием functions.php)
  2. Строка этого файла (в примере номер строки — 278)

В редакторе файлов WordPress (он расположен в разделе Внешний вид) вы не сможете увидеть номер строки. Поэтому, для поиска строки лучше использовать внешний редактор, который стоит на вашем компьютере и умеет подсвечивать код и показывает номера строк. Например, редактор Notepad++.

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

syntax-error

Второй вариант — как найти строку, используя редактор файлов (Внешний вид — Редактор) — использовать специальный плагин WordPress под названием — Advanced Code Editor.

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

Еще один вариант, как внести изменения в файлы вашей темы — использовать FTP-клиента. Я использую программу под названием FileZilla. Также как и редактор Notepad++ программа FileZilla имеет русский язык, является бесплатной, постоянно обновляется разработчиками.

Как настроить подключение FTP-клиента к вашему сайту? Если не знаете, попросите меня (в комментариях) — я обязательно запишу ваш видео-урок.

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

2 Comments

  • · Edit

    Добрый день Олег! Интересная статья. Я на твоих статьях учусь работе с ошибками и вообще работе с WordPress.
    Пишешь что плагини SyntaxHighlighter Evolved много забирает ресурсов сайта.
    Я посмотрел у себя ПРИ ПОМОЩИ плагина P3 — Plugin Performance Profiler у меня он показывает
    SyntaxHighlighter Evolved — 0,007с (4%)
    Подскажи Олег это плохо. Нужно убирать плагин или пока не надо.
    Еще хотел узнать каким плагином ты его заменил.

    Ответить

Добавить комментарий

Ваш email нигде не будет показан. Обязательные поля помечены *