PHP WordPress优化我的循环代码

时间:2012-12-03 作者:Rodrigo Sanz

我只是在学习PHP,我正在使用get\\u terms从CMS中获取一些文本描述,但我只想为我的woocommerce标记中的3个分配3个变量。我的代码运行得很好,但我只想了解是否有比使用if条件更好的方法通过$tag\\u descrip->name进行过滤。

这是我的代码:

<?php
$tag_descrip = get_terms( \'product_tag\', \'orderby=count&hide_empty=0\' );
$count = count($tag_descrip);


if ( $count > 0 ){

 foreach ( $tag_descrip as $tag_descrip ) {

 if($tag_descrip->name == "parfum_bestof")
   {$title_new1 = $tag_descrip->description ;}

 if($tag_descrip->name == "tshirt_bestof")
   {$title_new2 = $tag_descrip->description ;}

 if($tag_descrip->name == "child_bestof")
   {$title_new3 = $tag_descrip->description ;}



 }



}

?> 
谢谢

1 个回复
最合适的回答,由SO网友:Roman 整理而成

您好,没有更好的选择,但为了加快速度,您可以使用wordpress transient,请参阅文档:http://codex.wordpress.org/Transients_API

您的代码如下所示(我对其进行了位清理,并使用函数empty检查数组…):

<?php

if ( false === ( $tag_descrip = get_transient( \'tag_descrip\' ) ) ) {

     $tag_descrip = get_terms( \'product_tag\', \'orderby=count&hide_empty=0\' );

     set_transient( \'tag_descrip \', $tag_descrip );
}


if ( !empty($tag_descrip) ){

 foreach ( $tag_descrip as $tag_descrip ) {

 if($tag_descrip->name == "parfum_bestof")
   $title_new1 = $tag_descrip->description;

 if($tag_descrip->name == "tshirt_bestof")
   $title_new2 = $tag_descrip->description;

 if($tag_descrip->name == "child_bestof")
   $title_new3 = $tag_descrip->description;

}


}

?> 

结束