如何确保简码结果不会破坏格式?

时间:2019-06-06 07:18:57

标签: wordpress wordpress-theming

我想添加一个短代码,它将执行数据库查询并返回结果。 这是我的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' ); 

这是编辑器中的简码:

enter image description here 这是最终结果:

enter image description here

在这种情况下,值1出现在文本Real Estate上方。如何确定它显示在行中? 预先感谢

1 个答案:

答案 0 :(得分:1)

简码接受参数(属性)并返回结果(简码输出)。如果简码产生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' );