Вставка PHP кода в WordPress через виджеты. Вставка PHP кода в WordPress через виджеты Плагин PHP Code Widget


У нас никак не получается прописать какой-то код PHP в виджет? …то есть прописать-то получается, а вот заставить его работать — нет! — хотя удалось раздобыть такую здоровскую примочку в web волнах интернетing))

Трагедия, думается нам! Но это не так! Для этого существует ФИЛЬТР-РАЗРЕШЕНИЕ на отработку php функций в виджетах сайдбара, но! обо всём по порядку…

(После обновления Вордпресс 4.8 эта статья как бы стала не очень актуальной, ибо и функционал WP виджетов несколько обновился! стало не очень удобно работать с php кодом в текстовом виджете, который позволяет управлять контентом более тонко!

Как вернуть старый текстовый виджет? …чуть ниже будет ссылка на пост, в котором решение задачи)


Разделы статьи:

Расширяем php возможность виджетов

Внимание!!

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

Плагин умеет:

сразу же после установки и активации, в разделе «виджеты» появится новый RealMik — html, php, шорткод… — в текстовое окошко которого возможно прописывать любые php коды или шорткоды, которые тут же отработают на стороне фронтэнда!

Плагин не вызывает нагрузок на сервер… и никаких конфликтов скриптов!

Скачать плагин-виджет запросто!! в депозитарии Вордпрес — WordPress.org или на страничке по ссылке выше.

Но, для тех, которые хотят разобраться с механикой отработки php в виджете лично!! — ниже подробная статья:

Например, вы хотели, не применяя плагинов!!! расширить возможности своего блога, а именно, прописать код (полезная штука для оптимизации)) ну, или что-то иное, не важно… И, когда вы подошли к основному процессу выбора места, для «примочки», то, естественно, многие предпочитают прописывать этот код в виджете сайдбара — это удобно — да вот беда: такую возможность система WordPress изначально почему-то запретила КОМАНДОЙ на запрет отработки php в виджетах сайта/блога.

И что же!?

…всё бросать!? …когда уже в файл функций прикручен код ТОПа комментаторов, да и в файле CSS уже есть какие-то симпатичные задумки-намётки..??

Ни в коем случае. Для реализации отработки php в виджете, существует множество возможностей и разных способов (), которые дают команду системе WordPress «разрешить» пользовательские (то бишь наши) настройки, если сказать просто. Ну, ладно…

…реализуем возможность прописки и отработки PHP-кода в наших виджетах.

В следующих статьях:

рассмотрим — как вводному текстовому выражению задать прямо в html документе требуемый цвет.

...город веб мастеров Михалика.ru © - запросто с WordPress

Добрый день, уважаемые блоггеры! Если Вы еще не являетесь таковым, я рекомендую Вам присоединиться в наши ряды! Просто-напросто начните выполнять и так далее. Уверен, у Вас все получится!

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

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

  1. Через правку файла sidebar.php с помощью текстового редактора, к примеру, .
  2. Через админку WordPress, используя виджеты.

С первым случаем, пожалуй, все понятно. На этой основе я рассказывал почти все свои . Мы брали плагины, добавляли необходимый код в sidebar.php и наслаждались жизнью. Но, помню, когда я только начинал создавать блоги, мне не нравился данный способ, я любил работать с виджетами .

Почему? Да потому, что использование виджетов – способ очень простой. Не нужно копаться в коде, просто вставил необходимый виджет в сайдбар, выбрал необходимые параметры и все. Но при работе с виджетами я заметил одну неприятную вещь: не все плагины имели возможность выводить содержимое через виджеты и можно было использовать только коды. Именно эта причина заставляла меня постоянно использовать только 1 метод.

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


Проверка:

Сделаем проверку, попробуем вставить в данный виджет обычный PHP код . К примеру, я ввел вот такой код:

Нажимаю на кнопку “Сохранить” и смотрим результат на блоге:


Как видите все работает великолепно! Думаю многим, особенно начинающим, данный урок будет очень полезен! Ведь теперь вывести любой плагин через PHP Вы сможете с легкостью, просто использовав легкий в работе виджет.

До встречи на следующих уроках!

Здравствуйте, уважаемые друзья!

В этот раз будет, пожалуй, одна из самых коротких и легких статей.

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

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

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

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

Делается все очень просто, как с плагином, так и без. Я покажу 2 способа, но настоятельно рекомендую делать без плагина, так как все до невозможности просто.

Поддержка PHP в виджете без плагина

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

function php_in_widgets($widget_content) { if (strpos($widget_content, "<" . "?") !== false) { ob_start(); eval("?" . ">" . $widget_content); $widget_content = ob_get_contents(); ob_end_clean(); } return $widget_content; } add_filter("widget_text", "php_in_widgets", 99);

function php_in_widgets ($widget_content ) {

if (strpos ($widget_content , "<" . "?" ) !== false ) {

ob_start () ;

eval ("?" . ">" . $widget_content ) ;

$widget_content = ob_get_contents () ;

ob_end_clean () ;

return $widget_content ;

add_filter ("widget_text" , "php_in_widgets" , 99 ) ;

Разместить его проще в самом конце перед закрывающим тегом?>.

Vожет быть ситуация, когда в вашем файле данного тега не будет. Тогда придется разместить где-то между другими кодами. Но, если вы вообще не разбираетесь в содержимом этого файла, то так не делайте.

Поступим проще - разместим код в самом начале файла перед открывающим тегом



Далее сохраняете файл и заменяете им исходный файл на хостинге. Теперь на вашем сайте на WordPress должна работать поддержка php кода в виджетах. Размещаем такие коды через обычный текстовый виджет.

Способ без плагина мы рассмотрели. Надеюсь, вы его и выберите. Ну, если же вас он чем-то не устроил, то идем далее.

Плагин PHP Code Widget

Второй способ подразумевает под названием PHP Code Widget , после чего появится новый виджет под названием «PHP Code».

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

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

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

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

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

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

Если что-то конкретное хотите видеть, то всегда имеется форма комментариев. Пишите все, что пожелаете. Кроме спама конечно. А на этом я заканчиваю.

С уважением, Константин Хмелев!

Здравствуйте, уважаемые друзья и гости блога! Сегодняшний пост будет полезен как новичку, так уже и матерому вебмастеру, который еще не знает как можно вставить php код в wordpress на страницы, записи и сайдбар, чтобы он был исполнен движком WordPress.

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

Иногда возникает простая необходимость при создании сайта, чтобы вставить php код в wordpress в записях, на страницах или в сайдбаре. Я сам с этим столкнулся однажды и когда я попытался просто вставить php код в сайдбаре, он был выведен как обычный текст. То есть не был исполнен как функция.

Зачем нужно исполнение кода php на WordPress в постах, на страницах и в сайдбаре? Это каждый вебмастер решает сам для себя! Например возникла необходимость вставки в свои посты какого либо скрипта созданного на php коде или нужно вывести какое-то необычное меню в сайдбаре, мало ли.

Так вот, что бы вывести исполняемый код php в WordPress необходимо сделать некоторые действия, а какие именно, мы с вами сейчас узнаем...

Как вывести исполняемый PHP код в WordPress без плагина?

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

Для этого вам будет нужно внести некоторые изменения в файл functions.php вашей активной темы оформления сайта. Просто добавьте туда вот такой код в самом конце перед знаком "?> " :

/* чтобы вставить исполняемый код php в статьях/страницах WordPress, используйте этот шорткод: код */ function exec_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)*?)\[\/exec\]/", "exec_php", $content); $content = preg_replace("/\((.|\n)*?)\[\/exec\]/", "$1", $content); return $content; } add_filter("the_content", "inline_php", 0);

Затем используйте вот этот шорткод в своих записях и статьях для вставки исполняемого php кода:

Здесь php код

  • Небольшое уточнение, которое является очень важным моментом для правильного отображения и вывода php кода в ваших записях на сайте!

Обязательно, когда Вы будете внедрять свой php код в шорткод, не используйте вот это: «»! То есть ваш исполняемый php код вставляемый в шоткод должен выглядеть не так " " , а вот так "echo date ("Y"); " . И в конечном итоге, когда Вы вставите его в шорткод, он будет выглядеть вот так:

Echo date("Y");

  • Еще одно предупреждение для начинающих вебмастеров!

Исполнение таким образом php кода в ваших записях на WordPress делает ваш движок уязвимым для разного рода хакеров — взломщиков, которые могут им воспользоваться в своих корыстных целях. Для этого Вы должны изменить значение "exec " в коде, который вставляется в файл functions.php на свой, который известен только вам! И соответственно использовать это же значение в шорткодах для вставки в записях.

Этим действием Вы сможете избежать того, что кто-то сможет воспользоваться потенциальной «дырой», образовавшейся в результате использования данной функции — вставить php код в wordpress.

Это то, что касается вставки php кода в WordPress без использования плагина.

А теперь давайте узнаем, как можно еще вставить php код в WordPress, но уже при помощи плагина...

Как внедрить исполняемый PHP код в WordPress с плагином Exec-PHP?

Существует много плагинов для того, чтобы вставить php код в wordpress для его исполнения. Но не все они являются безопасными, так как при их установке и использовании появляются уязвимости в движке, которые не чистые на руку взломщики могут использовать.

Я вам сейчас расскажу о самом безопасном и наиболее функциональном плагине для исполнения php кода в WordPress — это Exec-PHP . Для начала его нужно скачать или с официального сайта WordPress или просто установить из своей админки на сайте. Надеюсь Вы знаете как это делается?! Если не знаете, то посмотрите . Там есть и видео ролик, в котором Вы сможете все увидеть воочию. Хоть там речь идет об установке другого плагина, но принцип один и тот же.

После установки и активации плагина в вашем основном меню админки появится :

Нажмите на нее и Вы попадете в :

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

Затем, чтобы Вы смогли вставить исполняемый php код в wordpress в записях и на страницах, Вы должны у себя в профиле установить галочку в пункте — :

Все. Теперь вы сможете добавить на свои страницы и в записи любой php код в wordpress и он будет исполнен!

Спасибо за внимание! Всем удачи! До новых встреч!

Добрый день!

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

Для тех, кто не знает, давайте сначала разберемся с тем, что такое виджет?

Виджет (от англ. widget – штуковина, попсушка =)) – это блок или контейнер, в который можно помещать различный контент: текст, ссылки, html код, изображения.

Вот этот код нужно добавить в файл functions.php , используемой темы:

add_filter("widget_text", "my_widget_execute_php", 100); function my_widget_execute_php($text) { if(strpos($text,"".$text); $text = ob_get_contents(); ob_end_clean(); } return $text; }

add_filter ("widget_text" , "my_widget_execute_php" , 100 ) ;

function my_widget_execute_php ($ text ) {

if (strpos ($ text , "

Ob_start();

Eval(" ?> ". $ text ) ;

$ text = ob_get_contents () ;

ob_end_clean () ;

return $ text ;

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

Строка 2 : add_filter – прикрепляет дополнительный код к функции widget_test . Здесь мы используем систему хуков. Об этом я упоминал при . То есть, теперь стандартная функция WordPress widget_text будет “цеплять” код нашей функции my_widget_execute_php .

Строка 3 : Объявление функции my_widget_execute_php . Она принимает один параметр $text , который содержит текст из виджета.

Строка 5 : Если php-код обнаружен, то включаем буферизацию вывода с помощью функции ob_start() . Теперь вся информация, предназначенная для вывода, будет временно помещаться в буфер.

Строка 6 : Функция eval запускает на выполнение php-код, содержащийся в полученной строке $text .

Единственное, перед строкой $text добавляем ‘?>’, чтобы текст, который может присутствовать до кода php не воспринимался как код.

Ошибка:

eval("Популярные статьи: ");

Строка “Популярные статьи” воспринимается функцией eval как код к выполнению.

Верно:

eval("?> Популярные статьи: ");

Теперь строка расположена между закрывающим ‘?>’ и открывающим ‘

Строка 7 : Получаем содержимое буфера в переменную $text

Строка 8 : ob_end_clean() – очищаем буфер и отключаем буферизацию

Строка 10 : Возвращаем результат работы функции в виджет.

Вот и всё! Теперь вы можете вставлять любой код в виджет WordPress!

Например, можете написать (или найти готовую) функцию, которая будет возвращать топ самых комментируемых записей. И потом для вывода этого списка в виджет сайдбара просто пропишете вызов вашей функции в текстовый виджет:

Напишите в комментарии ваши идеи насчет того, что еще можно выводить в виджет? Классно будет, если предложенный вариант не реализован в существующих плагинах и скриптах. По крайней мере, тех, что известны и широко распространены. Если идея мне понравится – я попробую её реализовать. Спасибо за участие!

Всё, пока! До новых встреч!

Оригинальных виджетов!







2024 © gtavrl.ru.