2017-02-21 5 views
1

私はXenForoフォーラムからフィールドを持ち込み、WordPressで表示するためにWordPressプラグインを作成しています。関数内で変数とエコーを定義する

<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> 

これは正常に動作します:次のコードを持っているxf.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_connector.phpと呼ばれるファイルを持っています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に表示するにはどうすればよいですか?

+0

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'); 

そして、我々はそれでありながら、これはそれがはるかに読みやすくなります:私は、これが動作することを推測します。 HTML/CSS/JS *のみ*です。 –

+0

申し訳ありませんが、PHPをブロックとして入力する方法と、プレーンテキストではありません。私の謝罪 –

答えて

2

$visitorは、関数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'); 
+0

ああ、私はあなたもvaribleを定義する必要があることを理解していない、私は$ xf_userId = $訪問者がそれをやっていたと思った。 これはとにかく動作します、ありがとうございます! –

+0

これは '$ xitor 'の内容に基づいて' $ xf_userId'を定義しますが、 '$ visitor'は定義されていないので、実際に何もしませんでした。 –

関連する問題