約3日間の検索といじくり回した後、私は立ち往生しています。私はコーダーではありませんが、試してみるのが好きです。
私は自分のWordPressデータベースのテーブルから星占いを取得する短いコードを持っています(私はテーブルを作成しました)。しかし、私はそれ以来、短いコードは "echo"や "print"が正しい出力を示すことを許さないことを発見しました。ショートコードを配置したページに表示されるのではなく、ショートコードが先に実行されるため、ページの上部に表示されます。
$結果をどのようにしてWebページに出力するかがわかりません。
これはショートコードとPHPです。
function fl_aries_co_today_shortcode() {
global $wpdb;
$results = $wpdb->get_results("SELECT horoscope FROM wpaa_scope_co WHERE date = CURDATE() AND sign = 'aries'");
foreach($results as $r) {
echo "<p>".$r->horoscope."</p>";
}
}
add_shortcode( 'fl_aries_co_today','fl_aries_co_today_shortcode' );
エコーは短いコード内では機能しません。ホロスコープをテキストとしてページに表示するにはどうすればよいですか。
(私はテンプレートページの使い方を学ぶことができることを知っていますが、短いコードのオプションはとても速くて便利です。)
出力バッファリングを使用して、生成したすべての出力を受け取ることもできます。以下のように使用してください。
function fl_aries_co_today_shortcode(){ global $ wpdb; $ results = $ wpdb-> get_results( "SELECTホロスコープwpaa_scope_co WHERE date = CURDATE()AND sign = 'aries' "); ob_start(); foreach($の結果は$ rになります){ echo"
"。$ r - > horoscope。" "; $ content = ob_get_contents(); ob_end_clean(); return $ content; add_shortcode( 'fl_aries_co_today'、 'fl_aries_co_today_shortcode');
詳細については Codex を参照できます。ショートコードにデータを出力するにはreturn
を使用します。
function fl_aries_co_today_shortcode() {
global $wpdb;
$results = $wpdb->get_results("SELECT horoscope FROM wpaa_scope_co WHERE date = CURDATE() AND sign = 'aries'");
$result ='';
foreach($results as $r) {
$result .= "<p>".$r->horoscope."</p>";
}
return $result;
}
add_shortcode( 'fl_aries_co_today','fl_aries_co_today_shortcode' );
ショートコードを使用すると、これはどこでも値を返します。