Как добавить php код в wordpress
Перейти к содержимому

Как добавить php код в wordpress

  • автор:

WordPress вставить php код на страницу без плагинов

Есть несколько способов добавить PHP-код на страницу WordPress. Среди них: установить плагин позволяющий это делать, редактировать functions.php и включить поддержку [exec]…[/exec], может быть ещё что-то. Но сегодня я расскажу как сделал я.

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

Недостатки включения тэгов [exec]…[/exec] для размещения php-кода: пользователи, являющиеся авторами, могут легко использовать эту конструкцию и делать с сайтом что угодно.

Поэтому, если Вам необходимо добавить PHP-код всего на пару страниц своего сайта, рекомендую сделать это следующим образом:

1. Создаём страницу стандартным способом

2. Создаём отдельный шаблон страницы

Узнаём какая постоянная ссылка у только что созданной страницы. В моём случае — https://blog.knasys.ru/ test-php / . Теперь нам нужно создать шаблон, к примеру в Notepad++.

Создаём новый документ, устанавливаем кодировку « UTF-8 (без BOM) «, содержимое копируем из файла « Шаблон страницы (page.php) »

php_wordpress2

находим в тексте функцию the_content :

Читать полностью »

'); ?>

она получает содержимое страницы отсюда:

php_wordpress3

Теперь можем вставить свой PHP-код, например, таким образом:

 $hash=$_GET['hash']; echo $hash; the_content('

Читать полностью »

'); ?>

3. Сохраняем файл и помещаем его на сервер

Так как постоянная ссылка в моём случае — https://blog.knasys.ru/ test-php / , нам нужно сохранить файл под именем page- test-php .php и поместить его на сервер в папку /wp-content/themes/your_theme/ .

4. Пробуем!

Открываем в браузере страницу и передаём ей некий текст в параметре ‘hash’ (в моём случае — https://blog.knasys.ru/ test-php ?hash=Hello world! ). И смотрим результат.

php_wordpress4

P.S.: А теперь мораль:

Когда пытаетесь вставить PHP-код всегда думайте о безопасности. В нашем случае я сделал огромную дыру в сайте.

Как добавить код в WordPress: все доступные методы

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

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

Как добавить код в WordPress

  • 1 Добавление кода в виджет
  • 2 Добавление кода в настройки темы
  • 3 Добавление кода с помощью плагинов
  • 4 Добавление кода в файл темы или плагина
    • 4.1 Статьи по теме:

    Добавление кода в виджет

    Виджеты в WordPress можно использовать для того, что добавить код на сайт. Для этого подходят виджеты «HTML-код» и «Текст». Благодаря такому способу можно установить какой-либо HTML код в любой области виджетов, предусмотренной активированной темой. И если этот код предусматривает вывод какого-либо элемента, то он будет виден.

    Для тех, кто не знает: виджеты находятся в пункте «Внешний вид», подпункте «Виджеты». Нужно лишь переместить мышкой виджет «HTML-код» или «Текст» из области «Доступные виджеты» (слева страницы), в какую либо область справа страницы. Затем в него можно вставить текст и сохранить с помощью соответствующей кнопки.

    Если используется виджет «Текст», то код нужно добавлять во вкладку «Текст», а не «Визульно».

    Добавление кода в виджет текст

    Но удобнее, всё-таки, использовать виджет «HTML-код», который специально для этого и предназначен. В нём всего одна вкладка, а также есть подсветка синтаксиса.

    Добавление кода в виджет HTML-код

    Иногда возникает необходимость добавить в виджет PHP код и сделать так, чтобы он работал. В этом случае придётся пользоваться дополнительным плагином, который создаст новый виджет «PHP-код».

    Плагин называется PHP Code Widget и ссылка на него ниже.

    Добавление кода в настройки темы

    Ещё один способ добавить код в WordPress — это внедрить его в настройки дизайна. Подойдёт для добавления своих CSS стилей, а в не которых случаях (в зависимости от темы) и других видов кодов.

    Для интеграции перейдите в пункт «Внешний вид», подпункт «Настроить». Вы увидите секции с опциями слева. Откройте «Дополнительные стили».

    Дополнительные стили в настройках темы

    И вставьте CSS код в поле. Не забудьте сохранить всё кнопкой «Опубликовать».

    Добавление своего CSS в WordPress

    А если нажать на кнопку с иконку в виде шестерёнки, то можно будет ещё и просто сохранить изменения, без публикации, и даже запланировать их публикацию на указный день и время.

    Сохранение изменений

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

    Добавление кода в настройки темы

    Настройки тему могут находиться в пункте «Внешний вид», либо вынесены в отельный пункт. В разных темах это может выглядеть, конечно же, по-разному, и не обязательно так, как у меня на скриншоте. А в некоторых темах этого вообще может и не быть.

    Добавление кода с помощью плагинов

    Универсальный способ добавить код в WordPress — это использовать плагин. И есть несколько вариантов.

    Во-первых, рекомендую простой плагин Head, Footer and Post Injections. После активации перейдите в пункт «Настройки», подпункт «Head and footer». И тут вы увидите возможность добавить любой код в любое место сайта: в шапку, подвал, записи, страницы. Кроме того, есть дополнительные опции, вроде включения добавленного кода только на некоторых устройствах или типах страниц.

    Плагин Head, Footer and Post Injections

    Есть, что изучать в этом плагине. Только один недостаток — всё на английском языке. Скачать можно по ссылке ниже.

    Ещё один способ добавить код в WordPress, это плагин My Custom Functions. Он решает задачу интеграции PHP функций, и добавляет их так, будто они были написаны в файле темы functions.php. При этом ни обновление темы, ни даже её изменение данную интеграцию не нарушает.

    Работу этого плагина я рассматривал на примере добавления в тему функции для реализации чек-бокса соглашения на обработку персональных данных в форме комментариев WordPress.

    Скачать плагин можно по ссылке ниже.

    После активации плагина, перейдите в пункт «Настройки», подпункт «PHP inserter». Включите применение кода и добавьте свою PHP функцию.

    Плагин My Custom Functions

    Добавление кода в файл темы или плагина

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

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

    Итак, чтобы добавить код в WordPress прямо в файл, нужно перейти в пункт «Внешний вид», подпункт «Редактор» (если речь о теме) или пункт «Плагины», подпункт «Редактор» (если речь о плагине).

    Сначала вы увидите пугающее предупреждение, где нужно нажать на «Я понимаю».

    Редактирование файла темы/плагина WordPress

    И теперь перед вами откроется редактор. Здесь в списке сверху можно выбрать редактируемый продукт (тему или плагин), в колонке справа выбирается файл, а в самом центре редактор с поддержкой синтаксиса кода.

    Редактор кода WordPress

    Кроме этого, добраться до файлов тем и плагинов можно через файловый менеджер или FTP подключение. Плагины хранятся в папке wp-content/plugins, а темы в wp-content/themes. Каждый плагин/тема в отдельной папке.

    При редактировании файлов будьте внимательны, делайте резервные копи.

    Как интегрировать php код в плагин для wordpress

    Первый раз делаю плагин для wordpress. Пока на начальном этапе, но надо уже интегрировать код на страницу как плагин, как это можно сделать? Как подготовить страницу к этому(там только выбор дизайна и прочее). Суть кода определить занятость домена. Вот код, как можно сделать плагином, что нужно писать или добавить? Помимо этой части

    Вот сам код на php function check_domain() < $host = htmlspecialchars(trim($_POST['name'])); $json = file_get_contents('http://ip-api.com/json/' . $host . '?lang=ru'); $array = json_decode($json, TRUE); if (strcasecmp($array['status'], 'fail') == 0) echo "

    Домен"." ".$host." "."свободен
    "; else echo "
    Домен"." ".$host." "."зарегистрирован
    "; > ?> Document

    Проверка домена на занятость ?>

    Отслеживать
    задан 17 мая 2021 в 17:40
    71 6 6 бронзовых знаков

    1 ответ 1

    Сортировка: Сброс на вариант по умолчанию

    Вот полный код плагина с комментариями. Код протестирован.

    Домен ' . $host . ' свободен'; > return '
    Домен ' . $host . ' зарегистрирован
    '; > /** * Domain shortcode. * * @return false|string */ function check_domain_shortcode() < // We have to return string, so wrap html into output buffer functions. ob_start(); ?>

    Проверка домена на занятость

    add_shortcode( 'check_domain', 'check_domain_shortcode' ); /** * Process domain page. * * @param string $content Post content. * * @return mixed|string */ function domain_page( $content ) < if ( has_shortcode( $content, 'check_domain' ) ) < // Do not use 'name' POST var in WordPress. It is reserved. if ( isset( $_POST['domain_name'] ) ) < $domain_name = filter_input( INPUT_POST, 'domain_name', FILTER_SANITIZE_STRING ); // Add the result of checking below the form. return $content . check_domain( $domain_name ); >> return $content; > // Add processing of the content. Priority 0 to work before conversion of shortcodes. add_action( 'the_content', 'domain_page', 0 );

    Активируйте плагин и добавьте на страницу или в пост шорткод [check_domain] . Шорткод выведет форму, а код по хуку the_content — проверит статус домена и добавит результат ниже формы.

    Отслеживать
    ответ дан 17 мая 2021 в 18:52
    KAGG Design KAGG Design
    35.1k 4 4 золотых знака 24 24 серебряных знака 53 53 бронзовых знака
    Здравствуйте, а зачем мы создали функцию check_domain_shortcode?
    18 мая 2021 в 9:05

    Эта функция реализует шорткод. Она срабатывает, когда в контенте страницы или поста ядро WordPress встречает [check_domain] . Тогда, для замены этого шорткода при выводе на экран, вызывается check_domain_shortcode . Это стандартный механизм ядра: wp-kama.ru/handbook/codex/shortcodes

    18 мая 2021 в 9:15

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

    18 мая 2021 в 16:40

    Вам надо сделать страницу настроек в админке. Сделать можно по-разному. Есть совсем простые рецепты. Есть статьи о том, как правильно: wp-kama.ru/id_3773/api-optsiy-nastroek.html

    Выполнение PHP кода в WordPress без плагинов

    php в wordpress

    Функция, позволяющая использовать PHP в постах и на страницах WordPress без установки дополнительных плагинов.

    Думаю, что у многих возникали ситуации, когда при написании очередной статьи в блоге возникала острая необходимость в использовании языка программирования PHP. Кто-то для этих целей использует старенький плагин под названием Inline PHP, а кто-то выносит скрипт в отдельный файл и дает на него ссылку ну или просто выводит его на странице блога в iframe. Каждый из этих вариантов по своему хорош и выбирать конечно вам, но для себя я выбрал вариант реализацию поддержки PHP с помощью простой функции, которую необходимо добавить в файл functions.php вашей темы оформления.

    Код функции позволяющий выполнять PHP код в постах и на страницах WordPress

    /* PHP внутри постов и страниц */
    function exec_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(‘/\[execs\]((.|\n)*?)\[\/execs\]/’, ‘exec_php’, $content);
    $content = preg_replace(‘/\[execs off\]((.|\n)*?)\[\/execs\]/’, ‘$1’, $content);
    return $content;
    >
    add_filter(‘the_content’, ‘inline_php’, 0);

    Для использования PHP кода в ваших постах вам необходимо разместить его между тегами [execs] [/execs].

    Для вывода PHP кода без его выполнения используйте теги [execs off] [/execs]

    PHP код можно добавлять в записи только в режиме Текст.

    php в wordpress

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

    Варианты использования PHP в постах WordPress

    Думаю, что самым востребованным будет вывод результатов работы какого-то скрипта на страничке вашего блога. В моей случае так работают все страницы моего блога из раздела Сервисы. При желании, можете сами зайти и посмотреть.

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

    Примеры использования функции

    Определение IP адреса пользователя

    [execs] echo $_SERVER[‘REMOTE_ADDR’]; [/execs]

    Количество постов в блоге

    [execs] echo wp_count_posts(‘post’)->publish; [/execs]

    Количество страниц в блоге

    [execs] echo wp_count_posts(‘page’)->publish; [/execs]

    Количество комментариев в блоге

    [execs] echo wp_count_comments()->approved; [/execs]

    Количество рубрик в блоге

    [execs] echo wp_count_terms(‘category’, array( ‘hide_empty’ => true )); [/execs]

    Количество меток в блоге

    [execs] echo wp_count_terms(‘post_tag’, array( ‘hide_empty’ => true )); [/execs]

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

    Присоединяйтесь к нашей группе в Telegram @GeekElectronics
    keyboard_arrow_downВыполнение PHP кода в WordPress без плагинов

    • Автор: source
    • Миниатюра:
    • Рубрика: WordPressfunctions.php, PHP, WordPress, код —>
    • Опубликовано: 04.12.2017
    • Обновлено: 26.12.2017
    • Комментариев: 2
    • Просмотров: 5 211
      Дата Бот

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

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