首页 > 解决方案 > 如何确保简码结果不会破坏格式?

问题描述

我想添加一个短代码,它将执行数据库查询并返回结果。这是我的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 上方。如何确保它显示在行内?提前致谢

标签: wordpresswordpress-theming

解决方案


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

推荐阅读