1

次のコードを使用して、bbPress の検索結果にタグ関連のトピックを表示しています。

<?php
$x = esc_attr( bbp_get_search_terms() );
$y = (string) $x;
$query = "SELECT * FROM wp_terms WHERE name=$y";
$tag=$wpdb->get_row($query);
echo $y;
$z= (int) $tag->term_id;
echo do_shortcode("[bbp-single-tag id=$z]");
?>

「echo $y」が「analytics」を出力しても機能しません。クエリで $y の代わりに実際の検索語「analytics」を使用すると、すべて正常に機能します。お気に入り

<?php
$x = esc_attr( bbp_get_search_terms() );
$y = (string) $x;
$query = "SELECT * FROM wp_terms WHERE name='analytics'";
$tag=$wpdb->get_row($query);
echo $y;
$z= (int) $tag->term_id;
echo do_shortcode("[bbp-single-tag id=$z]");
?>

名前列は、データベースの varchar 型です。ここでの間違いは何ですか。

4

2 に答える 2

1

これがあなたの求めているものかどうかはわかりませんが、変数の周りに引用符を追加してみてください

"SELECT * FROM wp_terms WHERE name='$y'";
                                   ^  ^
于 2014-08-08T18:22:37.527 に答える
0

do_shortcode パラメータで単一引用符を使用しています...全体が文字列として解釈されます。二重引用符を使用すると、変数が補間されます。

echo do_shortcode("[bbp-single-tag id=$z]"); 
于 2014-08-08T22:03:51.053 に答える