Безобидный plugin php. Вставка PHP кода на страницу

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

Уверяю, прочитав эту статью, Вы измените свое отношение к плагинам и перестанете пополнять ваш functions.php очередным сниппетом кода.

Плагины и functions.php

Многие владельцы сайтов на WordPress твердо убеждены, что плагины непременно будут нагружать и тормозить блог. А если просто добавить код в functions.php, то это никак не повлияет на нагрузку. Увы, это не совсем так…

Дело в том, что нагрузку вызывает не конкретно плагин, а его неверно написанный код, который, легко может попасть и в functions.php из очередного руководства.

Давайте посмотрим в чем главные отличия плагина и functions.php.

Принципиальное отличие плагина от файла functions.php — в назначении и порядке выполнения.

Также необоснованно мнение, что код в functions.php выполнится быстрее, чем в плагине. Один и тот-же код в плагине и в functions.php выполнится с одинаковой скоростью и нагрузкой.

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

Если Вы обычный блоггер и далеки от веб-разработки, то при выборе плагина обязательно обращайте внимание на отзывы в репозитории WordPress и на блогах авторов или веб-разработчиков.

Если все еще остались сомнения — сделайте чашечку кофе и обязательно прочтите статью Константина Ковшенина на WP Magazine — «Вся правда о functions.php ». В первой части просто и доступно рассказывается почему не стоит верить в мифы о functions.php.

Плагин как альтернатива файлу functions.php

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

Давайте создадим свой плагин — альтернативу файлу functions.php. Не стоит пугаться, он будет выглядеть один в один как любимый functions.php 🙂 . Все, что потребуется — просто добавить пустой плагин на свой сайт. И затем в него можно вставлять необходимый код, как раньше делали это c functions.php.

Прежде всего нам нужно создать на компьютере файл с названием functionsphp.php и добавить в него следующий код:

. Обычно, если вставляемый код имеет в начале и в конце эти теги, то их нужно удалить. Также, файл functions.php не должен выводить на экран никакой текст (HTML код или другой контент). Вывод текста допускается только внутри функции, которые в дальнейшем будут использоваться в шаблоне или которые прикрепляются к хукам (подробнее см. ниже).

Нельзя допускать никаких символов до , в том числе невидимые символы (перенос строки), потому что functions.php подключается до установки http заголовков (в таких заголовках передаются различные данные, например, что это html документ; что кодировка utf-8 другое). По правилам PHP, контент должен выводится на экран после того, как отправлены заголовки. А все что за пределами это и есть контент - текст выводимый на экран, даже невидимый символ \n. Поэтому такой текст вызывает ошибку.

Чтобы не было ошибок, учитывайте 4 момента: #1 Правильная вложенность

Пример, у нас была такая структура:

........здесь код......... ?>

Правильно так:

#2 Никаких переносов строк, пробелов, текста до

Такой код вызовет ошибку:

А этот нет:

Логичнее его записать так:

Бывает что перенос строки ставят в самом конце functions.php, вот тогда это становится настоящей проблемой, потому что все казалось бы правильно, но сайт не работает. На самом деле после?> или до здесь пустая строчка

По этой причине многие разработчики вообще удаляют закрывающий тег?> , это допустимо для PHP. Рекомендую всегда делать именно так:

внутри PHP функции

Если в functions.php присутствует функция, то внутри этой функции можно использовать теги , например, для того, чтобы визуально выделить HTML код внутри функции:

это html код

Дело в том, что в этом случае функция только лишь регистрируется и не выполняет никаких действий. Все что внутри функции (между { }) не работает пока эта функция не будет вызвана, а вызываются такие функции обычно из шаблона или через фильтры, уже после того как отправлены HTTP заголовки. Поэтому в данном примере, мы можем игнорировать переносы строк и использовать?> и .

Плагин Exec-PHP есть в репозитарии и устанавливается через меню в админке движка.

Из настроек есть только одна – разрешение/запрет на исполнение кода в текстовом виджете, возможности отключить работу в постах и на страницах отсутствует, если надо ее убрать – деактивируем плагин.

Для вставки PHP кода в статью, должен быть переведен в HTML режим (вкладка «Текст»). Визуальный режим, скорее всего, код попортит.

Выполнение PHP кода в статьях WordPress без плагина

По аналогии с виджетами, мы можем заменить плагин на специальную функцию, разрешающую выполнение PHP скриптов в контенте. К сожалению, мне не удалось найти вариант, при котором код работал бы автоматически как в случае с плагином, реагируя на теги. Требуется использование шорткода. Моих познаний в PHP не хватило для самостоятельного написания нужной функции, за сим привожу как есть. Работа с шорткодом имеет существенный недостаток, осложняющий работу, о нем я расскажу ниже.

Как работать с описанной ниже функцией

  • Вставляем ее в файл functions.php темы;
  • В нужном месте статьи вставляем конструкцию – исполняемый код без
  • Функция:

    /* Запуск php в статьях и страницах WordPress: код */ function start_php($matches){ eval("ob_start();".$matches."$inline_execute_output = ob_get_contents();ob_end_clean();"); return $inline_execute_output; } function inline_php($content){ $content = preg_replace_callback("/\((.|\n)*?)\[\/startphp\]/", "start_php", $content); $content = preg_replace("/\((.|\n)*?)\[\/startphp\]/", "$1", $content); return $content; } add_filter("the_content", "inline_php");

    /* Запуск php в статьях и страницах WordPress: код */

    function start_php ($matches ) {

    eval ("ob_start();" . $matches [ 1 ] . "$inline_execute_output = ob_get_contents();ob_end_clean();" ) ;

    return $inline_execute_output ;

    function inline_php ($content ) {

    $content = preg_replace_callback ("/\((.|\n)*?)\[\/startphp\]/" , "start_php" , $content ) ;

    $content = preg_replace ("/\((.|\n)*?)\[\/startphp\]/" , "$1" , $content ) ;

    return $content ;

    add_filter ("the_content" , "inline_php" ) ;

    Недостаток

    Если внутри вставляемого PHP кода есть HTML вставки или текст, то он работать не будет. Любой текст или теги придется вставлять с помощью команды echo, что не всегда удобно. То есть, код должен быть чисто PHP-шный на 100 правильного формата.

    Правильно

    Echo "Так работать будет";

    [ startphp ]

    echo "Так работать будет" ;

    [ / startphp ]

    Неправильно

    In the late 90"s, Denise Dufala"s "People" column in the Cleveland Plain Dealer featured northeast Ohioans making a difference in society, and gave readers good news on page 2 of the Sunday Paper. She consistently advances community-driven, innovative, and sustainable solutions to the region"s most pressing challenges, and service to either one organization or a variety of volunteer activities.. Lakewood women.

    Thomasina from Temecula

    Family Planning We offer a wide range of contraceptives to help in your family planning. They are the hardest working, committed and fearless women I know.. Temecula women.

    Ivy from Hayward

    Their bean-counting mentality cares about whether women participate equally, without asking what it is that they are participating in or whether their participation is anything more than ceremonial. But the rest is feminist silence.. Hayward muslim single women.

    Lynnette from Sacramento

    Pamela Lopez, a partner at a Sacramento lobbying firm, said that for years she has dealt with inappropriate suggestions from male officials, but the most disturbing episode came early last year, at a social gathering of lawmakers and lobbyists in a Sacramento bar. I can deal with it.. Sacramento women.

    Elinor from Clarksville

    Disqus offers the best add-on tools for websites to increase engagement we help publishers power online discussions with comments and. There you will have an opportunity to find yourself a perfect match based not just on physical appearance but also on physiological compatibility.. Clarksville muslim single women.

    Gillian from Sterling Heights

    The speaker, identified as a white woman named "Deena," refuses to give her full name or the name of the organization she runs. It"s an important part of the day"s discussions: The ZBA held the first public hearing on the matter on Dec.. Sterling Heights muslim single women.

    Eugenia from Olathe

    Routes 83 and 81 , as well as the southwestern portion of the state along and south of U. The western third of the state - from roughly the U.. Olathe muslim single women.

    Joy from Oxnard

    She leads a team of ladies who have a heart to decorate or those who just want to lend a helping hand. She led OC in scoring 17 points , rebounds 8 , assists 5 , and steals 5.. Oxnard women.

    Phoebe from St. Louis

    But, things are not destined to go smoothly. Currently owned by the state, the preferred stadium site is adjacent to Union Station in the western part of downtown St.. St. Louis women.

    Merilyn from Pompano Beach

    Shop Lingerie Trendy, Flattering Swimwear for a Stylish Summer Without a stylish bathing suit, could you really consider yourself ready to attend one of the hottest pool parties of the season. You will be able to get a look that best matches your personal style without spending a fortune.. Pompano Beach women.

    Rubye from Irving

    Members of a Texas chapter of the Ku Klux Klan mingled with the group, undercover, with an eye to holding their own march later on: Loves to laugh and enjoys life. The problem is that Breitbart is almost indescribably bad at basic journalism - the transmission of accurate information.. Irving muslim single women.

    Ophelia from Hialeah

    According to Florida marriage records, the couple married in She started The Fitness Challenge knowing that something had to change. Citrus continues to provide services to adults and children across the spectrum of mental and behavioral health needs, and is one of the largest mental and behavioral health providers in South Florida.. Hialeah women.

    Ericka from Shreveport

    Browse bengali singles and personals on lovehabibi - the web"s favorite place for connecting with single bengalis around the world. Single muslim converts muzmatch is the fast growing muslim singles for the way you facilitate and make it easier for young muslim men and women to find one.. Shreveport muslim single women.

    Rosanne from Tuscaloosa

    In conjunction with UMW, Cultivate strives to provide multiple opportunities for women to gather and develop meaningful relationships as they draw even closer to Christ. Lucado invites readers into a study of Philippians 4: We will practice talking and listening to God through many journaling formats and methods.. Tuscaloosa women.

    Stella from Miami

    Expert Profile Advice Putting together a first class profile is a really important part of online dating. D writes on why people struggle to let go and identifies the 3 common factors preventing people from moving on.. Miami muslim single women.

    Winifred from Las Cruces

    The intent of this program is to prevent child abuse and neglect in families experiencing domestic violence by giving these parents the skills and knowledge necessary to decrease the use of violence in their relationships with their children, improve communication skills and break the generational cycle of abuse. Do not leave a regular comment if you want this listing updated quickly.. Las Cruces women.

    Hollie from Round Rock

    I understand the previous review about the front desk as so many insurance companies require a "referral". Bruce read her scans done through the ER at Seton Williamson.. Round Rock women.