所以我正在制作一个关于未来的新闻网站,具体来说是2112(你好,评论家)。我想显示一个帖子的日期是2112年。但当我尝试从管理面板执行此操作时,它会“安排”帖子。我真的很想在本世纪发表这篇文章。有什么帮助吗,各位?
显示帖子从2112开始的发布日期
4 个回复
最合适的回答,由SO网友:Scott 整理而成
我在处理事件时和你有同样的问题,我想展示未来的事件。
以下是我的代码:
add_action( \'init\', \'change_future_posts_to_post_now\' );
function change_future_posts_to_post_now() {
remove_action("future_post", \'_future_post_hook\');
add_action("future_post", \'publish_future_posts_now\', 2, 10);
}
function publish_future_posts_now($depreciated, $post) {
wp_publish_post($post);
}
add_filter(\'posts_where\', \'show_future_posts_where\', 2, 10);
function show_future_posts_where($where, $that) {
global $wpdb;
if("post" == $that->query_vars[\'post_type\'] && is_archive())
$where = str_replace( "{$wpdb->posts}.post_status = \'publish\'", "{$wpdb->posts}.post_status = \'publish\' OR {$wpdb->posts}.post_status = \'future\'", $where);
return $where;
}
请看这里How to set a custom post type to have viewable future posts 我在处理CPT时遇到了同样的问题。SO网友:Tom J Nowell
这可能会起作用:
$date = get_the_date();
$date_unix = strtotime($date);
// now lets add 100 years
$date_unix += (100*365*24*60*60);
$echo date(\'U\',$date_unix);
这面临的主要问题是,根据您的系统,2030年左右可能会发生切断/翻转。在这些情况下,请打印当前日期,但不打印年份,然后手动打印之后的年份,例如:echo get_the_date(\'l, F j,\').\' 2112\';
这里的问题是,2013年1月1日将成为2112年1月1日,而不是2113年1月1日SO网友:Ipstenu
为“未来的一年”做一个分类,然后在你的帖子中将其指定为2112,怎么样?
您可以更进一步,为所有帖子创建一个辅助日期自定义值,并按该值而不是实际日期进行排序。
(还有?拉什!)
SO网友:Ben HartLenn
您可以使用一个简单的自定义字段来添加将来的发布日期。
如果在帖子/页面编辑器中看不到自定义字段,请单击屏幕选项(编辑器屏幕右上角区域),并确保选中“自定义字段”。
现在,查看帖子/页面编辑器中的自定义字段框,单击“输入新内容”。在“名称”文本字段中,输入自定义字段的描述性名称,如“未来日期”:在“值”文本字段中输入希望显示的日期。
最后,模板文件中需要一些代码来显示存储在自定义字段中的内容。可能是这样的:
if(get_post_meta($post->ID, \'futureDate\', true))
{
echo get_post_meta($post->ID, \'futureDate\', true);
}
使用此方法,您还可以通过以下查询(未测试)按此自定义字段值对帖子进行排序:query_posts( array(\'meta_key\'=>\'futureDate\', \'orderby\'=>\'meta_value\') );
结束