Intereting Posts
WAMP, Laravel 5: Маршруты не работают – NotFoundHttpException Получить текстовый узел с помощью простого HTML DOM Parser C #: эквивалент php sprintf PHP + PDO + MySQL: как я могу возвращать целочисленные и числовые столбцы из MySQL как целые числа и числа в PHP? Использование JQuery, как мне отправить форму, созданную с помощью AJAX? PHP: Примечание: неопределенный индекс, в котором определена переменная сеанса Paypal PHP SDK REST не возвращает никакой переменной "success" Разбить и Создать новый <ul> после 10 значений из цикла foreach php PHP короткий открытый тег против длинного открытого тега Сломанные результаты пакетного преобразования с помощью командной строки ImageMagick в Linux Как сохранить текстовую строку с разрывами строк в текстовое поле базы данных MySQL с помощью PHP? Сохраните переменные PHP в текстовый файл печать качественных изображений с помощью php и GD isset ($ _ POST ) vs $ _SERVER == 'POST' PHP – загрузить заголовок из другого файла

Определить переменную и эхо в функции

Я создаю плагин WordPress, чтобы вносить поля с форума XenForo и отображать их в WordPress.

У меня есть файл с именем xf_connector.php, который имеет следующий код:

<?php $startTime = microtime(true); $fileDir = 'C:\Domains\xxxx.com\httpdocs\forums'; require($fileDir . '/library/XenForo/Autoloader.php'); XenForo_Autoloader::getInstance()->setupAutoloader($fileDir . '/library'); XenForo_Application::initialize($fileDir . '/library', $fileDir); XenForo_Application::set('page_start_time', $startTime); XenForo_Session::startPublicSession(); $visitor = XenForo_Visitor::getInstance()->toArray(); ?> 

А затем отдельный файл с именем xf.php, который имеет следующий код:

 <body> <p>Hello <?php $xf_userId = $visitor['user_id']; $xf_username = $visitor['username']; echo "$xf_username" ?> welcome to this web page.</p> <p>Hello <?php $xf_userId = $visitor['user_id']; $xf_username = $visitor['username']; echo "$xf_username" ?> welcome to this web page.</p> </body> 

Это отлично работает в пустом документе, но не работает в плагине WordPress. Мой файл плагина в настоящее время:

 include_once( plugin_dir_path( __FILE__ ) . '/includes/xf_connector.php' ); function xenfield_shortcode() { ob_start(); ?> <div class="xenfield"> <?php $xf_userId = $visitor['user_id']; $xf_username = $visitor['username']; echo "$xf_username" ?> </div> <?php return ob_get_clean(); } add_shortcode( 'xenfield', 'xenfield_shortcode' ); 

Это ничего не отображает на странице WordPress, и если я смотрю на HTML, он просто показывает пустые теги <p> .

Как я могу определить переменную и повторить ее в том же файле, чтобы она отображалась в WordPress?

$visitor не определен в вашей функции xenfield_shortcode (). Думаю, это сработает:

 include_once( plugin_dir_path( __FILE__ ) . '/includes/xf_connector.php' ); function xenfield_shortcode() { $visitor = XenForo_Visitor::getInstance()->toArray(); ob_start(); ?> <div class="xenfield"> <?php $xf_userId = $visitor['user_id']; $xf_username = $visitor['username']; echo "$xf_username" ?> </div> <?php return ob_get_clean(); } add_shortcode( 'xenfield', 'xenfield_shortcode' ); 

И пока мы на нем, это делает его более читаемым:

 include_once( plugin_dir_path( __FILE__ ) . '/includes/xf_connector.php' ); function xenfield_shortcode() { $visitor = XenForo_Visitor::getInstance()->toArray(); $output = '<div class="xenfield">'; $output .= $visitor['username']; $output .= '</div>'; return $output; } add_shortcode( 'xenfield', 'xenfield_shortcode' );