在Wordpress中显示具有特定日期和特定类别的帖子的文本

时间:2015-06-11 10:04:53

标签: php wordpress date conditional

所以我试图在每个帖子的末尾显示文字,但仅从本月开始,只在一个类别中显示。我尝试了我在这里找到的不同代码,但没有一个真正有用或者我需要什么。这是我喜欢做的例子。希望它有意义。

 if(in_category(tags) && date(from June 2015) )
    {
            ?>
        <p>See related news <a href="#">here</a>.</p>
       <p>Subscribe to our monthly e-newsletter <a href="#">here</a>.</p>

  <?php } ?>

2 个答案:

答案 0 :(得分:1)

如果我理解你的任务没有错,你需要使用date_query以及tax_query

$args = array(
    'post_type'  => 'page', // 'post', 'page' or custom post type 'Name' Like `Products`
    'tax_query' => array(
                            array(
                                'taxonomy' => 'category_term', // your taxonomy name
                                'field' => 'slug', // slug or id 
                                'terms' => $catSlug
                            )
                        ),
    'date_query' => array(
            array(
                'year'  => date('Y'), // remove if you dont want
                'month' => date('m'),
                'day'   => date('d'), // remove if you dont want
            ),
        ),
);
$query = new WP_Query( $args );

echo '<pre>';print_r($query->posts);echo '</pre>';

要检查类别,您应该使用条件:

获取每个发布日期的月份,并将其与当前月份数或硬编码月份数进行比较,例如June使用06,您可以检查php日期格式here

对于in_category参数,请参阅this

if(in_category('cat_name') && date('m',strtotime($post->post_date)) == date('m'))
{

// your code to view post title 

}

答案 1 :(得分:0)

检查以下代码。在这里,我使用了类别&#39; Uncategorized&#39;你可以在那里使用你的标签。  希望这会有所帮助。在functions.php中添加此代码

add_filter( 'the_content', 'check_cat_date' );

function check_cat_date($content){

      $date    = '2015-06-01';
      $pub_Date =the_date( 'Y-m-d', '' ,'', $echo=false );
      $pub_Date = (string)$pub_Date; 

      $posted_date = strtotime($pub_Date);
      $flag_date   = strtotime($date);


if(in_category('Uncategorized')&&($posted_date) >= $flag_date)
    {


    $append = '<p>See related news <a href="#">here</a>.</p>
            <p>Subscribe to our monthly e-newsletter <a href="#">here</a>.</p>';
    $new_content = $content.$append;

    return $new_content;



    }
    else{
        return $content;
    }

}