从自定义字段中检索ID,计数并根据计数以不同方式显示结果

时间:2011-12-08 作者:unfulvio

下面的函数位于单个post循环内。

我在自定义字段中有一个ID数组。此类ID表示相关的帖子。我正在使用高级自定义字段(ACV)插件,并使用它管理自定义元。在这种情况下,为了获取相关的\\u内容元,我可以使用ACV函数get\\u字段(“related\\u content”),并从related\\u content字段中检索到的每个帖子中获取帖子数据。根据检索到的相关帖子的数量,我想显示略有不同的结果(使用较大的缩略图或根本没有缩略图,等等)。所以我想出了下面的php。然而,我不确定这是否得到了有效的优化或编写得更好。你介意看看吗?

我知道这不是一个严格意义上的Wordpress问题,但也与PHP/数据库相关,但由于它与Wordpress对象、数据库和函数相关,我认为在这里发布是合适的。也许有一个更好的方法来查询我想要的WP。。。非常感谢。

echo \'<ul>\';
foreach( get_field(\'related_content\') as $post_object) :
         $post_type = get_post_type_object(get_post_type($post_object->ID));
         for ($i = 0; $i <count($post_object); $i++ ) {
               if ($i == 0 && $i < 4 ) { 
                   printf(\'<li class="large"><a target="_blank" hre= "\'.get_permalink($post_object->ID).\'">\'.get_the_post_thumbnail($post_object->ID, \'small\').\'</li><span class="thumb-cat">\'.$post_type->labels->singular_name.\'</span><span class="thumb-title">\'.get_the_title($post_object->ID).\'</span></a></li>\');
               }
               elseif ($i > 3 && $i < 5 ) { 
                       printf(\'<li class="medium"><a target="_blank" href="\'.get_permalink($post_object->ID).\'">\'.get_the_post_thumbnail($post_object->ID, \'smallest\').\'</li><span class="thumb-cat">\'.$post_type->labels->singular_name.\'</span><span class="thumb-title">\'.get_the_title($post_object->ID).\'</span></a></li>\');
               }
               elseif ($i > 6 ) { 
                       printf(\'<li class="small"><a target="_blank" href="\'.get_permalink($post_object->ID).\'"><span class="thumb-cat">\'.$post_type->labels->singular_name.\'</span><span class="thumb-title">\'.get_the_title($post_object->ID).\'</span></a></li>\');
               }
         }
endforeach; 
echo\'</ul>\';

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

我回答自己,因为这段代码工作得更好(之前有一个问题),而且我删除了一个无用的“for”:

echo \'<ul class="related-content">\';
$count = 0;
foreach(get_field(\'related_content\') as $post_object) :
        $count++;
        if ($count > 0 && $count < 4 ) { 
            printf(\'<li class="large"><a target="_blank" title="\'.get_the_title($post_object->ID).\'" href="\'.get_permalink($post_object->ID).\'"><span style="display: block" title="\'.get_the_title($post_object->ID).\'">\'.get_the_post_thumbnail($post_object->ID, \'small\').\'</span><span class="thumb-title">\'.get_the_title($post_object->ID).\'</span></a></li>\');
            }
            elseif ($count > 3 && $count < 6 ) { 
                    printf(\'<li class="medium"><a target="_blank" href="\'.get_permalink($post_object->ID).\'">\'.get_the_post_thumbnail($post_object->ID, \'smallest\').\'<span class="thumb-title">\'.get_the_title($post_object->ID).\'</span></a></li>\');
            }
            elseif ($count > 6 ){ 
                    printf(\'<li class="small"><a target="_blank" href="\'.get_permalink($post_object->ID).\'"><span class="thumb-title">\'.get_the_title($post_object->ID).\'</span>\'. get_field(\'title_subtitle\').\'</a></li>\');
            }
            endforeach; 
            echo\'</ul>\';

结束

相关推荐

Wpdb->get_var-count作者帖子,元值

在作者中。php模板,我用$wpdb->get\\u var计算自定义帖子类型中的作者帖子,$post_author = $curauth->ID; //author id $count = $wpdb->get_var( \"SELECT COUNT(*) FROM $wpdb->posts WHERE post_author = $post_author AND post_type IN (\'ideas\') and post_status = \'publish\'