我如何在样式元素中显示1个特色帖子,以及下面几个不同样式的帖子

时间:2012-11-13 作者:ByteMyPixel

我正在寻找一些想法、想法和/或方向,以确定实现这一目标的最佳方式:

基本上,我想在一个不同风格的div中有1篇“特色”文章,然后在下面显示接下来的3篇。

我使用的是自定义帖子类型,所以内置的粘性帖子功能不起作用,我不想使用插件。。。

下面是我试图完成的截图:
enter image description here

我以前没有在WordPress中这样做过,所以我真的不知道从哪里开始。我想我应该设置一个名为“特色”的类别或标签,以触发哪些帖子将显示在顶部。但是,我怎样才能让它不显示在常规提要中呢
我猜我可能不允许使用“特色”标签或类别,但这一工作流程似乎很繁琐(客户必须取消选中过去的特色帖子,然后才能在常规提要中显示)。

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

实现这一点的一种方法是建立两个查询/循环,一个处理特色帖子,另一个处理所有其他帖子(特色帖子除外)。

你如何区分什么是和什么不是featured post 可以由special placeholder category 或使用custom field, 后者比将类别列表与没有实际价值的占位符类别混在一起更合适。

因此,让我们假设对于您想要成为的帖子featured 您分配的custom field 使用meta_key 属于featured_post meta\\u值为1.

然后在模板文件中执行类似的操作;

$args = array(
   \'posts_per_page\' => 1,
   \'post_type\' => \'your_post_type\',
   \'order\' => \'DESC\',  
   \'meta_query\' => array( 
      array(
         \'key\' => \'featured_post\', 
         \'value\' => \'1\',
      )
   )
);


$first_query = new WP_Query( $args );
if ( $first_query->have_posts() ):
   while( $first_query->have_posts() ) : $first_query->the_post();

        echo \'<div class="featured_post">\';

            //your desired output here....      

        echo \'</div>\';

   endwhile;
endif;
wp_reset_postdata();


$args = array(
   \'posts_per_page\' => 9,
   \'post_type\' => \'your_post_type\',
   \'meta_query\' => array( 
      array(
         \'key\' => \'featured_post\', 
         \'value\' => \'1\',
         \'compare\' => \'NOT LIKE\' //or NOT or != should suffice
      )
   )
);


$second_query = new WP_Query( $args );
if ( $second_query->have_posts() ):
   while( $second_query->have_posts() ) : $second_query->the_post();

        echo \'<div class="regular_posts">\';

            //your desired output here....      

        echo \'</div>\';

   endwhile;
endif;
wp_reset_postdata();
您可能有一些问题。。。

Q: 如果我使用featured_post 关键和价值1 忘记编辑以前的特色帖子?

在这种情况下,参数;\'order\' => \'DESC\' 显示在控制特色帖子显示的第一个查询中,将显示最近分配给帖子元键/值配对的基于DATE 按时间顺序从最新发布日期到最年长日期。

Q: ...但是,如果我想显示一个随机日期的特色帖子,并且一个日期更近的帖子已经被分配了帖子元,会发生什么呢key/value 一对

在这种情况下,您需要记住删除post metakey/value 从任何按日期更新的特色帖子中配对,以便旧帖子与帖子元key/value 配对可以优先。

Q: 还有其他方法吗?

当然是!根据您的要求,我们还可以通过其他方式为第一个查询分配特色帖子,从而可能更容易管理更改,这可能包括使用custom constructed meta boxes 显示您当前分配的此帖子类型的特色帖子,并提供一种在全球范围内更改特色帖子的方法,即使在帖子编辑屏幕内也是如此。如果您的需求超过了上述解决方案,我们可以更仔细地研究这一点。

一些有用的法典资源:

结束

相关推荐

get_posts by id not working

我有以下代码:global $post; $current_post = $post->ID; $array=range(1,$current_post); $posts = get_posts(\'numberposts=5&post__in=\' . $array . \'&category=\'. $category->term_id . \'&exclude=\' . $current_post); 出现的错误为Warning: