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”打印“分析”,但它不起作用。如果我在查询中使用实际搜索词“分析”而不是 $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]");
?>

名称列是数据库中的 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 回答