我使用以下代码在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,一切正常。像
<?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]");
?>
name列在Database中是varchar类型。这里有什么错误。
答案 0 :(得分:1)
我不确定这是否是您的要求,但尝试在变量周围添加引号
"SELECT * FROM wp_terms WHERE name='$y'";
^ ^
答案 1 :(得分:0)
您在do_shortcode参数中使用单引号...整个事物被解释为字符串。使用双引号,变量将被插值。
echo do_shortcode("[bbp-single-tag id=$z]");