Wordpress: добавьте PHP код в области содержимого правильно без плагина - PullRequest
0 голосов
/ 30 января 2020

Я хочу добавить код PHP (для считывания переменных URL через get_query_var) в области содержимого страницы Wordpress. Для этого я использую в своих функциях следующую функцию: php

function php_execute($html){
    if(strpos($html,"<"."?php")!==false){ ob_start(); eval("?".">".$html);
    $html=ob_get_contents();
    ob_end_clean();
}
return $html;
}
add_filter('the_content','php_execute',100);

Благодаря этому я могу считывать переменные URL моего URL /thank-you/?order_id=ABCDE с помощью <?php echo get_query_var( 'order_id' );?>.

Теперь я хочу добавить этот идентификатор заказа в URL (для того, чтобы предварительно заполнить поле в опросе) и попытался добавить его к соответствующему URL следующим образом:

<iframe src="https://XXX.wufoo.com/embed/YYYYY/def/field414=<?php echo get_query_var( 'order_id' );?>"> <a href="https://XXX.wufoo.com/forms/YYYYY/def/field414=<?php echo get_query_var( 'order_id' );?>">Link to survey</a>

К сожалению, полученный результат Исходный код выглядит следующим образом:

<iframe src="https://XXX.wufoo.com/embed/YYYYY/def/field414=ABCDE &#8222;> <a href="https://XXX.wufoo.com/forms/YYYYY/def/field414=ABCDE &#8222;>">Link to survey</a>

Поэтому вместо field414=ABCDE"> он говорит field414=ABCDE &#8222;>

Я очень новичок в PHP и думаю, что может быть проблема в функция, но не может понять это.

Кто-нибудь где-нибудь видит ошибку?

Спасибо, Патрик

1 Ответ

0 голосов
/ 30 января 2020

Установите правильно тег iframe. Затем измените ваши функции php_execute на это.

add_filter( 'the_content', 'php_execute' );
function php_execute( $content )
{
    $orderId = isset($_GET['order_id']) ? trim($_GET['order_id']) : false;

    if ($orderId) {
        $content .= '<iframe src="https://XXX.wufoo.com/embed/YYYYY/def/field414=' . $orderId . '">';
        $content .= '<a href="https://XXX.wufoo.com/forms/YYYYY/def/field414=' . $orderId . '">Link to survey</a>';
    }

    return $content;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...