студия занимательная МИХАЛИКА
! Михалика - запросто с WordPress:
доступная ручная работа по правилам оптимального интернет(а)
Здравствуйте !

издатель:   в теме: HTML-CSS-PHP
студия занимательная МИХАЛИКА

Задаём отработку PHP кода в виджете

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

Трагедия, думается нам! Но это не так!

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


 

Об особенностях читайте шуточное: PHP и HTML в чём отличие

 

 

 

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

 

 

 

 

Итак

 

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

 

 

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

 

 

Задаём отработку PHP кода в виджете

 

 

 

 

 

 

Ни в коем случае. Для реализации отработки 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 документе требуемый цвет.

 

 

…Но я бегу вперёд…

 

…Об этом далее…

 

 

 


подписка feedburner МИГ подписки - ВРЕМЯ знаний!!

 

 

 


Если что-то не ясно, спрашивайте. Помогу… в чём дюжу.
Вместе мы многое сможем! Берегите себя и свой век - mihalica.ru


Нажатия на кнопочки определяют Ваше высокое гражданское сознание
Удачи в работе и творчестве..!


меточная навигация:

Поделитесь соображениями: Ваши мысли очень важны! $ правила комментирования ©

Ваш e-mail не будет опубликован. Обязательные поля помечены *