想要循环定位特定帖子

时间:2015-05-06 17:02:07

标签: php html css wordpress

我的Wordpress网站有一个创建帖子的循环,我想定位特定的帖子来改变他们的CSS值。

html - index.php

<?php /* Start the Loop */ ?>
    <?php while ( have_posts() ) : the_post(); ?>
    <?php
      get_template_part( 'content' );
    ?>
<?php endwhile; ?>

content.php

<?php
if (has_post_thumbnail()) {
$thumbnail_data = wp_get_attachment_image_src( get_post_thumbnail_id( get_the_ID() ), 'my-fun-size' );
$thumbnail_url = $thumbnail_data[0];
}
?>

<article id="post-<?php the_ID(); ?>" style="background-image:url('<?php echo $thumbnail_url ?>')" <?php post_class('container-fluid'); ?> >

 <div class="container-fluid">
  <div class="col-md-12 text-cell">
   <h2><a href="<?php the_permalink(); ?>" rel="bookmark"><?php  the_title(); ?></a></h2>
   <?php the_category(', '); ?>
  </div>   
 </div>

</article><!-- /#post -->

有人建议我使用&#39; get_post_meta ...&#39;但我不熟悉如何使用它。我只想更改不同帖子的css值(填充,字体大小等)

1 个答案:

答案 0 :(得分:1)

我建议使用自定义字段,以便您可以在帖子中定义值,而不是每次添加新帖子时都必须编辑代码。

在帖子中,确保您可以看到自定义字段(可从顶部的屏幕选项中进行切换)

然后创建一个名为“Alignment”的字段或任何您喜欢的字段,并为其赋值。 (例如'左')

Custom Field example

然后你可以在循环中添加一个条件。

<?php $alignment = get_post_meta(get_the_ID(),'Alignment',true);
if($alignment) == 'left'):?>
    <p>Do stuff and things here...</p>
<?php endif;?>

您可以在此处详细了解:https://codex.wordpress.org/Custom_Fields

希望这对您有用。如果你想获得更好的功能,我建议你看看高级自定义字段插件,它允许更多的灵活性和选项。

来自评论的编辑:

第一个选项: 将“ExtraCSS”字段设置为“color:green;” enter image description here

<?php $extraCSS = get_post_meta(get_the_ID(),'ExtraCSS',true);?>
<article id="post-<?php the_ID(); ?>" style="background-image:url('<?php echo $thumbnail_url ?>'); <?php echo $extraCSS;?>" <?php post_class('container-fluid'); ?> >

第二个选项:

(在你的样式表中:)

article:nth-child(2n+0)
{
    color:green;
}

http://www.w3schools.com/cssref/sel_nth-child.asp