我在分类页面上显示已发布和未来的帖子。我需要使未来的帖子不可点击,并为其添加一个特殊类,以便添加灰色覆盖,这意味着帖子即将发布。。尝试类似于
$post_status = get_post_status($post_id);
if($post_status === \'future\')
根本不起作用。。在同一循环中,如果post状态为“0”,如何禁用链接并添加类;未来??
任何帮助都将不胜感激。。
这是我循环的第一部分(这是一个高级主题,我正在子主题中构建一个自定义类别页面)
$args = array(
\'post_type\'=> \'post\',
\'post_status\' => array(\'publish\',\'future\'),
\'showposts\' => -1,
\'category\' => get_queried_object_id(), // Current category id
\'category__in\' => array( get_queried_object_id() )
);
$query= new WP_Query($args);
if ($query->have_posts()) :
while ( $query->have_posts() ) : $query->the_post();
$counter++;?>
<?php if( $counter % 2 == 0 ) :
if (\'future\'===get_post_status() ){
echo \'<div class="td-pb-row future">\';
}else if(\'publish\'===get_post_status() ){
echo \'<div class="td-pb-row">\' ;
} ?>
<div class="td-pb-span6">
<h3 class="entry-title td-module-title">
<a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title_attribute() ?>">
<?php the_title() ?>
</a>
</h3>
<?php the_content();?>
</div>
<div class="td-module-image td-pb-span6">
<div class="td-module-thumb">
<?php
if ( current_user_can(\'edit_published_posts\') ) {
edit_post_link(\'Edit\', \'\', \'\', \'\', \'td-admin-edit\');
}
?>
<a href="<?php the_permalink() ?>" rel="bookmark" class="td-image-wrap" title="<?php the_title_attribute() ?>">
<?php $post_thumbnail_url = \'\';
if( get_the_post_thumbnail_url(null, \'medium_large\') != false ) {
$post_thumbnail_url = get_the_post_thumbnail_url(null, \'medium_large\');
} else {
$post_thumbnail_url = get_template_directory_uri() . \'/images/no-thumb/medium_large.png\';
}
?>
<img class="entry-thumb" src="<?php echo esc_url($post_thumbnail_url) ?>" alt="<?php the_title() ?>" title="<?php echo esc_attr(strip_tags(the_title())) ?>" />
</a>
</div>
</div>
最合适的回答,由SO网友:leendertvb 整理而成
只需使用该功能get_post_status()
. 在循环中,您可以访问帖子Id,但如果您将此项留空,它将使用当前帖子的Id。
因此,您的代码将变成这样(尚未测试):
<h3 class="entry-title td-module-title">
<?php if( get_post_status() != \'future\' ) { ?>
<a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title_attribute() ?>">
<?php the_title() ?>
</a>
<?php } else { ?>
<?php the_title() ?>
<?php } ?>
</h3>
代码中的问题可能是
$counter
变量由于
% 2
. 所以我想你应该把这个处理掉
$counter
变量
因此,请举例说明如何更改代码:
<?php if( \'future\' == get_post_status() ){
echo \'<div class="td-pb-row future">\';
} else {
echo \'<div class="td-pb-row">\';
} ?>