如何在PHP字符串中创建while循环?

我正在使用短代码终极灯箱创建查询.但是这在常规PHP页面中工作的唯一方法是将数据保存为字符串.所以我需要做的是创建我的查询,但不知何故在字符串中得到我的结果.

在使用任何类型的PHP查询之前,这是有用的:

 <?PHP     
 $my_tabs = "<ul class='easybuttons'>
 <li>[su_lightBox type='inline' src='#lightBox1']AT&amp;T[/su_lightBox]</li>
 <li>[su_lightBox type='inline' src='#lightBox2']Sprint[/su_lightBox]</li>
 <li>[su_lightBox type='inline' src='#lightBox3']T-Mobile[/su_lightBox]</li>
 </ul>";

 echo do_shortcode( $my_tabs );
 ?> 

但我需要ATT,Sprint,T-Mobile才能充满活力.请记住,短代码只有在字符串中才有效.

那我怎么能在这个字符串中做一个while循环呢?我尝试使用运算符但没有工作.

$args = array('post_type' => 'services', 'category_name' =>  $childid, 'order_by' => 'the_title', 'order' => 'ASC');     

 query_posts($args);

// The Query
$the_query = new WP_Query( $args );

// The Loop
if ( $the_query->have_posts() ) {
 $my_tabs .= '<ul class="easybuttons">'; 
 while ( $the_query->have_posts() ) { 
 $the_query->the_post();
 $my_tabs .= '<li>[su_lightBox type="inline" src="#lightBox1"]' . get_the_title() . '</li>';
 }
$my_tabs .= '</ul>';
}
/* Restore original Post Data */
wp_reset_postdata();

  echo do_shortcode( $my_tabs );
 ?>

更新:

我尝试使用此代码但它确实有效.没有任何事情发生.我没有收到任何错误,但没有显示代码.

 <?PHP 
  $args = array('post_type' => 'services', 'category_name' =>  $childid, 'order_by' => 'the_title', 'order' => 'ASC');   


 // The Query
  $the_query = new WP_Query( $args );

 // The Loop
 if ( $the_query->have_posts() ) {
  $lid = 1;
  $my_tabs .= '<ul class="easybuttons">'; 
  while ( $the_query->have_posts() ) { 
   $the_query->the_post();
   $my_tabs .= '<li>[su_lightBox type="inline" src="#lightBox' . $lid . '"]' . get_the_title() . '</li>';
   $lid++;
  }
 $my_tabs .= '</ul>';
 }

 echo do_shortcode( $my_tabs );
 wp_reset_postdata();   

解决方法:

您需要在某处初始化变量$my_tabs,例如在if块之外,并增加灯箱ID.您不需要调用query_posts(). order_by应该是title,而不是the_title.确保$childid绝对是string of the category slug,而不是名称,如果有疑问,请完全取出该参数,看看你是否得到任何东西,因为我认为这很可能是主要问题.

$args = array('post_type' => 'services', 'category_name' =>  $childid, 'order_by' => 'title', 'order' => 'ASC');

// The Query
$the_query = new WP_Query( $args );

$my_tabs = '';

// The Loop
if ( $the_query->have_posts() ) {
 $lid = 1;
 $my_tabs .= '<ul class="easybuttons">'; 
 while ( $the_query->have_posts() ) { 
  $the_query->the_post();
  $my_tabs .= '<li>[su_lightBox type="inline" src="#lightBox' . $lid . '"]' . get_the_title() . '</li>';
  $lid++;
 }
$my_tabs .= '</ul>';
}

相关文章

我们有时候在定制WORDPRESS主题的时候,由于菜单样式的要求我...
很多朋友在做wordpree主题制作的时候会经常遇到一个问题,那...
wordpress后台的模块很多,但并不是每个都经常用到。介绍几段...
从WordPress4.2版本开始,如果我们在MYSQL5.1版本数据中导出...
很多网友会遇到这样一个问题,就是WordPress网站上传图片、附...
对于经常要在文章中出现代码的IT相关博客,安装一个代码高亮...