将循环分割为不同的POST样式

时间:2016-06-11 作者:Terrell Anderson

我正在使用一个插件来显示帖子,并将其显示在我网站的某个区域,例如侧边栏或我放置<?php;?> 代码,但仅当撰写文章的作者单击“新建文章”窗口中的复选框时。

该插件附带一个选项页面,允许我设置要显示的帖子数量。

下面是显示帖子的插件中的代码。

<?php

    $m_slider_sort = get_option(\'sort\'); if(empty($c_slider_sort))    {$c_slider_sort = "post_date";}
    $m_slider_order = get_option(\'order\'); if(empty($c_slider_order)){$c_slider_order = "DESC";}
    $m_slider_post_limit = get_option(\'limit_posts\'); if(empty($m_slider_limit_posts)){$m_slider_limit_posts = "-1";}

    global $wpdb;

    global $post;

    $args = array( \'meta_key\' => \'feat_music\', \'meta_value\'=> \'1\', \'suppress_filters\' => 0, \'post_type\' => array(\'post\', \'page\'), \'orderby\' => $m_slider_sort, \'order\' => $m_slider_order, \'numberposts\'=> $m_slider_post_limit);

    $myposts = get_posts( $args );

    foreach( $myposts as $post ) :  setup_postdata($post);

        $m_slider_custom = get_post_custom($post->ID);

        $m_slider_thumb = m_slider_get_thumb("featmusic");

    ?>

***HTML/PHP THE TITLE GOES HERE***

<?php endforeach; ?>    
我将展示七个帖子。我希望第一篇文章的风格与接下来的六篇文章不同。有没有人知道如何修改上面的代码,以便我可以将第一篇文章的风格与下一篇6篇文章的风格不同。

还有这条线$m_slider_thumb = m_slider_get_thumb("featmusic"); 抓取该帖子的缩略图,但我需要两个缩略图,一个用于第一篇帖子,另一个用于接下来的六篇帖子。这部分php代码我不熟悉。

1 个回复
SO网友:cjbj

您不需要更改不同格式的代码,只需使用:first-child 中的伪类css. 这个foreach 循环大概会生成类似的代码块,其结构如下:

<div class="all-my-posts">
    <article class="my-slider-post">
     ...
    </article>
    <article ..>
    </article>
    ...
</div>
现在您只需添加第一个<article> 使用css阻止,如下所示:

.my-slider-post:first-child h1 {...}
.my-slider-post:first-child h2 {...}
另一种方法是在foreach 像这样循环

$i=0;
foreach (...) {
    $i++;
    if ($i=1) { 
         echo \'<div class="first-post>\';
         { do your thing for the first post }
         echo \'</div>\';
    else { ... }
    }
这会给你额外的div 根据您的css 打开并允许对第一篇帖子和其他帖子调用不同的函数来更改缩略图。

相关推荐

为什么我的主题的css在另一个网站上不起作用

我在Neve theme的基础上开发我的on theme。首先,我对脚本有问题,因为它不起作用,但我不得不从页脚更改它们的位置。php到标题。php的一切都很好。新的一些脚本无法工作,因为css根本没有加载。我尝试了5种不同的方法,但都失败了。标题中的。php我只是给他们<style> </style></我在函数中使用了寄存器样式。php,标题。php和页脚。php function my_theme_enqueue_styles() { &#x