wordpress - 如何确保简码结果不会破坏格式?
问题描述
我想添加一个短代码,它将执行数据库查询并返回结果。这是我的functions.php:
function get_posts_count($cat){
global $wpdb;
$a = shortcode_atts( array(
'id' => ''
), $cat );
$id=$a['id'];
$count=$wpdb->get_results( "SELECT `count` FROM `wpmy_term_taxonomy` WHERE `term_id`=$id");
foreach($count as $row)
echo '('.$row->count.')';
}
add_shortcode( 'postCount', 'get_posts_count' );
这是编辑器中的简码:
在这种情况下,值 1 出现在文本 Real Estate 上方。如何确保它显示在行内?提前致谢
解决方案
简码接受参数(属性)并返回结果(简码输出)。如果短代码生成 HTML,则 ob_start 可用于捕获输出并将其转换为字符串,如下所示:-
function get_posts_count( $cat ) {
ob_start();
global $wpdb;
$a = shortcode_atts( array(
'id' => '',
), $cat );
$id = $a['id'];
$count = $wpdb->get_results( "SELECT `count` FROM `wpmy_term_taxonomy` WHERE `term_id`=$id" );
foreach ( $count as $row ) {
echo '(' . $row->count . ')';
}
return ob_get_clean();
}
add_shortcode( 'postCount', 'get_posts_count' );
推荐阅读
- python - 设置 app = Flask(__name__) 的全局问题
- ios - 使用正则表达式验证用户名
- php - 我如何从这个 xml 中获取属性?(PHP)
- xml - 复杂 XML 结构中的 SQL 请求
- react-native - 错误:无法解析模块 react-native/Libraries/Animated/src/Easing
- rust - 如何对 macro_rules 的参数对进行操作?
- python - 如何根据两个条件拆分 numpy 数组列表
- sql - 如何在 Spring Data Jpa 中使用多对多表中的列?
- docker - 将 S3 与 fluentd 连接时访问被拒绝
- python - 从数据框中删除空行