У нас никак не получается прописать какой-то код PHP в виджет? …то есть прописать-то получается, а вот заставить его работать – нет! – хотя удалось раздобыть такую здоровскую примочку в web волнах интернетing))
Трагедия, думается нам! Но это не так! Для этого существует ФИЛЬТР-РАЗРЕШЕНИЕ на отработку php
функций в виджетах сайдбара, но ! обо всём по порядку…
(После обновления Вордпресс 4.8 эта статья как бы стала не очень актуальной, ибо и функционал WP виджетов несколько обновился! стало не очень удобно работать с php кодом в текстовом виджете, который позволяет управлять контентом более тонко!
Как вернуть старый текстовый виджет? …чуть ниже будет ссылка на пост, в котором решение задачи)
Об особенностях читайте шуточное: PHP и HTML в чём отличие…
Расширяем php возможность виджетов
Внимание!!
…админам, которым не хочется копаться в коде лично, смею предложить свой плагин widget-text-class-ats, который создаёт классический текстовый виджет.
Плагин умеет:
сразу же после установки и активации, в разделе “виджеты” появится новый RealMik – html, php, шорткод… – в текстовое окошко которого возможно прописывать любые php
коды или шорткоды, которые тут же отработают на стороне фронтэнда!
Плагин не вызывает нагрузок на сервер… и никаких конфликтов скриптов!
Скачать плагин-виджет запросто !! в репозитории Вордпрес – WordPress.org или на страничке по ссылке выше.
Но, для тех, которые хотят разобраться с механикой отработки php
в виджете лично!! – ниже подробная статья:
Итак
Например, вы хотели, не применяя плагинов !!! расширить возможности своего блога, а именно, прописать код ТОП-комментаторов (полезная штука для оптимизации)) ну, или что-то иное, не важно… И, когда вы подошли к основному процессу выбора места, для «примочки», то, естественно, многие предпочитают прописывать этот код в виджете сайдбара – это удобно – да вот беда: такую возможность система WordPress изначально почему-то запретила КОМАНДОЙ на запрет отработки php
в виджетах сайта/блога.
И что же!?
…всё бросать!? …когда уже в файл функций прикручен код ТОПа комментаторов, да и в файле CSS
уже есть какие-то симпатичные задумки-намётки..??
Ни в коем случае. Для реализации отработки php
в виджете, существует множество возможностей и разных способов ( ХАКОВ), которые дают команду системе WordPress «разрешить» пользовательские (то бишь наши) настройки, если сказать просто. Ну, ладно…
…реализуем возможность прописки и отработки PHP-кода в наших виджетах.
Разберёмся прямо…
Как прописать в виджет и заставить работать код php
…чтобы всё заработало!
Нам потребуется дополнить наш файл функций следующим ниже кодом:
просто пропишите его в наш легендарный файл functions.php
и всё. Как это делается!?
Открываете упомянутый документ и перед значком ?> (сделав необходимые отступы от соседних скриптов — «Enter») дописываете следующий пример: (к примеру, коли код ТОП коммов у вас установлен, то следующий вписываете после него – так, возможно, будет понятнее для дальнейшего пользования файлом)
// отработка php в виджете
add_filter('widget_text','sp_widget_execute_php',100);
function sp_widget_execute_php($text) {
if(strpos($text,'<?') !== false) {
ob_start();
eval('?>'.$text);
$text = ob_get_contents();
ob_end_clean();
}
return $text;
}
// фин отработка php в виджете
Теперь готово! – этим кодом обычный текстовый виджет (теперь по умолчанию) будет читать (выполнять) любой PHP-код
.
И как только вам потребуется «прописка» какого-то иного, на ваше усмотрение, PHP
кода в сайдбаре… то останется только открыть текстовый виджет и добавить в него нужную кодированную строку, которая тут же включится в правильную отработку…
Всё! Вы получили результат вашей сегодняшней работы, а блог — инструмент ФИЛЬТРА на ЗАПРЕТ cmsWordPress использовать PHP-код
в виджетах.
Немного об общих правилах написания строк кода:
…вероятно, встречали, когда автор какой-то полезной статьи напоминает, что нужно тот или иной НОВЫЙ код ФУНКЦИЙ прописывать до тега ?>
Почему так?
…А всё дело в том, что при прописке кода в файл functions.php
, например, необходимо придерживаться определённых правил языка программирования: в частности, размещать код нужной функции внутри общей сборной конструкции файла функций < ?php КОДЫ ? >
внутри которой размещаются добавочные, скажем так – а сегодня мы как раз и добавили ещё один новый в эту конструкцию документа функций.
А именно, после <?php НО перед тегом ?>, который и говорит о финале же ОСНОВНОЙ конструкции-документа (однако стоит помнить: бывают и исключения в вариантах размещения кода!!)
Итак: вот перед этим ?> финалом и нужно прописать необходимую нам дополнительную функцию (вживлять её в основной документ – что мы сегодня замечательно выполнили).
Ну и очевидно, что НЕЛЬЗЯ нарушать целостность других автономных рабочих функций нашего файла functions.php (т.е прописывать новый код внутри рабочих циклов уже установленных…)
В завершение…
о правилах прописки кодов
…кое-что полезное: в сам код php
возможно вписывать html
– обычный текст. Но для этого создают определённые переходы от PHP-языка к HTML или правильно выбирают место…
Не знаю, будет ли оченно понятно, но давайте рассмотрим сторонний пример —
строки файла footer.php
:
<?php
?>
- сайт такой-то - <br /> права защищены
<?php
…строка работает как нужно, ибо текст прописан по php
правилам!
…но вот если записать смешивая с HTML-текстом-языком:
<?php
?>
<?php - сайт такой-то - <br /> права защищены
Сразу же конфликт c фразой ! ! – сайт такой-то – <br /> права защищены ! ! ибо в этом случае нарушаются условия php
программирования – система вордпресс, всё, что писано после тега <? анализирует как php
!? …ибо у документа footer.php
как и functions.php
соответствующее расширение т.е финальное в имени .php
И, следовательно, конЬфликт ЯЗЫКОКОВ и БЕЛЫЙ ПУСТОЙ ЭКРАН КРАСЯВиШНОГО САЙТА !!
В нашем случае правильно должно быть примерено так:
<?php
?>
- сайт такой-то - <br /> права защищены
<?php
Вывод – текстовые пояснения, которые выводятся на странички сайта информационным сообщением (кстати, полезная статья) вписываются ни абы куда..!
А вот админ-комментарии, чтобы не забывать назначения кодов, которых со временем наберётся множество, прописываются проще: сравните самый верхний код…
// отработка php в виджете
или
/*** fin отработка php в виджете ***/
А чтобы ВРЕМЕННО отключить отработку какого-то рабочего кода, не удаляя его из основного файла – существуют иные комментарии как закомментировать на время код HTML, CSS или PHP
В следующих статьях:
рассмотрим – как вводному текстовому выражению задать прямо в html
документе требуемый цвет.
…Но я бегу вперёд…
…об этом далее…
Как вернуть в обновлённый Вордпресс функционал прежнего текстового виджета? с наглядной пропиской и отработкой php кода… Легко..!
...город веб мастеров Михалика.ru © - запросто с WordPress - ATs media squad
Online консультация по настройкам и созданию сайтов на WordPress
mihalica.ru !