我正忙于为自己创建一个博客,需要制作一个水平时间线,但我不确定如何实现这一点。
我花了我晚上谷歌搜索的大部分时间,发现了这个时间表http://tutorialzine.com/2012/04/timeline-portfolio/但它比我需要的要广泛得多。
基本上我想做一些类似这样的东西,但没有内容滑块或 JSON 内容,只是一个时间线,显示帖子的标题可能是缩略图,当然正确地放置在与他们的日期相对应的时间线上被创造。
有什么想法我可以做到这一点吗?
我正忙于为自己创建一个博客,需要制作一个水平时间线,但我不确定如何实现这一点。
我花了我晚上谷歌搜索的大部分时间,发现了这个时间表http://tutorialzine.com/2012/04/timeline-portfolio/但它比我需要的要广泛得多。
基本上我想做一些类似这样的东西,但没有内容滑块或 JSON 内容,只是一个时间线,显示帖子的标题可能是缩略图,当然正确地放置在与他们的日期相对应的时间线上被创造。
有什么想法我可以做到这一点吗?
这是一个旧帖子,但答案可能对其他人有所帮助,帖子时间轴提供水平和垂直时间轴,您可以为 WordPress 下载它。
这是一个老问题,但我真的想分享我找到的解决方案。
一起使用 WordPress、高级自定义字段(ACF) 和TIMELINE JS (TL)。
我真的很喜欢时间轴 js,尤其是它们对移动友好的外观非常完美!一探究竟。
我希望能够为我的学校创建一个用户,这样基本上每个人都可以使用 WordPress 用户友好的设计并为 TL 前端视图创建新事件。
我想说,并不是每个人都对 excel 感到满意,而且使用这种数据并不是最好的工作。
为了能够做到这一点,我编写了一些代码来获取 WordPress 安装的所有帖子,并将它们导出到 TL 可以读取为事件的 json 格式文件,每次更新或创建新帖子时。
您可以在此处阅读有关 json 结构的更多信息
使用 ACF 创建两个日期字段 - 一个用于开始日期,一个用于结束日期 - 并将返回格式设置为 Ymd
将它们设置为在帖子中显示。
之后,此代码会将帖子数据导出到文件结构中的文件中:
两个 ACF 字段的开始日期和结束startdato
日期slutdato
function export_posts_in_json (){
$args = array(
'post_type' => 'post',
'post_status' => 'publish',
'posts_per_page' => -1,
);
$query = new WP_Query( $args );
$text = new stdClass();
$text->headline = "Det Kongelige Danske Kunstakademi";
$text->text = "Som har været en del igennem";
$timelineObj = new stdClass();
$timelineObj->title = "media";
$timelineObj->title = $text;
$eventArray = array();
while( $query->have_posts() ) : $query->the_post();
$obj = new stdClass();
if( has_post_thumbnail() ) {
$media = new stdClass();
$media->url = get_the_post_thumbnail_url();
$media->thumbnail = get_the_post_thumbnail_url(get_the_ID(), 'thumbnail');
$media->caption = get_post( get_post_thumbnail_id())->post_excerpt;
$obj->media = $media;
}
$text = new stdClass();
$text->headline = get_the_title();
$text->text = get_the_content();
$obj->text = $text;
$startDate = new stdClass();
$dateObject = new DateTime( get_field('startdato', get_the_ID() ) );
$startDate->year = $dateObject->format('Y');
$startDate->month = $dateObject->format('m');
$startDate->day = $dateObject->format('d');
$obj->start_date = $startDate;
if( get_field('slutdato', get_the_ID() ) ) { // Hvis der er en slutdato
$endDate = new stdClass();
$dateObject = new DateTime( get_field('slutdato', get_the_ID() ) );
$endDate->year = $dateObject->format('Y');
$endDate->month = $dateObject->format('m');
$endDate->day = $dateObject->format('d');
$obj->end_date = $endDate;
}
if( get_the_category() ) { // Can only take one!
$category = new stdClass();
$obj->group = get_the_category()[0]->name;
}
$eventArray[] = $obj;
endwhile;
wp_reset_query();
$timelineObj->events = $eventArray;
$data = json_encode($timelineObj);
$folder = get_stylesheet_directory() . '/it-timeline/';
$file_name = 'timeline-data.json';
$succes = file_put_contents( $folder.$file_name , $data );
}
这将保存数据并可供 TL 读取(如我所说)。
然后添加 TL javascript 和 CSS 并从您的文件之一调用该.php
文件:
<link title="timeline-styles" rel="stylesheet" href="https://cdn.knightlab.com/libs/timeline3/latest/css/timeline.css">
<script src="https://cdn.knightlab.com/libs/timeline3/latest/js/timeline.js"></script>
<div id='timeline-embed' style="width: 100%; height: 600px"></div>
<script type="text/javascript">
var options = {
hash_bookmark: true
}
var json_url = "wp-content/themes/twentyseventeen-child/it-timeline/timeline-data.json"
$.getJSON( json_url, function( data ) {
timeline = new TL.Timeline('timeline-embed', data, options);
console.log(data);
} );
</script>
现在,您可以与可能不是 Excel 中最好的朋友或同事共享用户登录名,或者只是想要 WordPress 的功能。或者就我而言,如果你想开发一个包含很多不同人知识的时间线,你可以在一个用户友好的流程中共同完成一个项目——而不是在 Excel 中。
希望这会对某人有所帮助
这个对我有用。