Timeline Express creates a beautiful vertical animated and responsive timeline of posts, in chronological order.
Timeline Express is the best WordPress timeline plugin, which allows you to create a beautiful animated vertical timeline on your site. Populate your site with announcements, set the date and Timeline Express will load the latest and greatest announcements in proper chronological order.
Use the included shortcode ([timeline-express]
) to place Timeline Express timeline anywhere on your site.
If you’re looking for power, flexibility and top tier support – look no further.
Timeline Express Features
[timeline-express]
)Pro Features
- Setup multiple timelines and assign announcements to any, or all, of the timelines.
- Tighter layout, less distance between each announcement on the timeline.
- Create and assign categories to your announcements.
- Timeline sorting features. Sort timelines by categories, timeline or a combination of the two.
- Priority support, code snippets provided when needed etc.
Timeline Express has been successfully used on a number small and large scale sites. Our users have created a number of amazing things with our plugin.
Timeline Express has been used to create:
The small list above demonstrates the flexibility and power behind Timeline Express. Check out our documentation for some helpful code snippets,
Timeline Express Add-Ons
We have built out some powerful add-ons that extend Timeline Express beyond it’s core capabilities. Many of the add-ons have been user requested features, which we’ve spun off into add-ons. If your looking for some advanced feature that you don’t see in the base plugin, checkout a list of our add-ons.
Timeline Express Translations
Timeline Express comes ready for translation! With all of the proper i18n functions in place, 100% of our plugin is ready for translation. If you’re multi-lingual, and interested in translating the plugin into one of the languages not yet available, we’re willing to pass a long Single Site license of Timeline Express Pro, which is good for one full year. We’re huge fans of the open source community, and believe that this plugin should be available to everyone, in their native language. If this is something you would be interested in, please get in touch with us on our Contact Page.
The Timeline Express polyglot project can be found here.
Looking for additional documentation? Check out the knowledge base.
Multi-lingual Sites & Timeline Express
Timeline Express has been thoroughly tested with some of the top rated, and widely used translation plugins.
Two multi-lingual plugins which we are fully, 100% compatible with are WPML and Polylang.
Timeline Express may be compatible with other multi-lingual plugins, we just haven’t thoroughly tested it with otheres. If you find it’s compatible with other plugins, please get in touch and let us know and we can add it to this list.
This plugin was originally inspired by the great folks at CodyHouse.io.
Have an idea for a feature you want to see added to Timeline Express? We love hearing about new ideas! You can get in contact with us through the contact form on our website, WP Timeline Express.
Developer Documentation
Hooks + Filters
Use Custom Images Instead of Font Awesome Icons (New v1.1.6.7)
Users can now use the custom announcement image in place of the font awesome icons by using the following filter. Huge thanks to Pete Nelson for the pull request and making this possible and available for everyone.
Filter – timeline-express-custom-icon-html
Usage Example: https://gist.github.com/EvanHerman/6bbc8de82f34b4cb3c5c
Use Alternate Image Size For Announcements (New v1.1.5.5)
By default Timeline Express generates a custom image size to use within the timeline. If you would like to use another image size, you can use the following filter.
Example:
function change_timeline_express_announcement_image_size( $image_size ) { $image_size = 'full'; return $image_size; } add_filter( 'timeline-express-announcement-img-size' , 'change_timeline_express_announcement_image_size' );
Define your own custom fields to use in Announcement posts (New v1.1.5)
Users can now add custom fields to Timeline Express announcement posts. This allows for greater control over the announcements and the front end display. Using this hook in conjunction with a custom single announcement template will give you the greatest control.
Example:
function add_custom_timeline_express_field( $custom_fields ) { $custom_fields = array( array( 'name' => __( 'Example Text Field', 'timeline-express' ), 'desc' => __( 'this is an example user defined text field.', 'timeline-express' ), 'id' => 'announcement_user_defined_text', 'type' => 'text_medium', ), array( 'name' => __( 'Example WYSIWYG', 'timeline-express' ), 'desc' => __( 'this is an example wysiwyg field.', 'timeline-express' ), 'id' => 'announcement_user_defined_wysiwyg', 'type' => 'wysiwyg', ), array( 'name' => __( 'Example Email Field', 'timeline-express' ), 'desc' => __( 'this is an example user defined email field.', 'timeline-express' ), 'id' => 'announcement_user_defined_money', 'type' => 'text_email', ) ); return $custom_fields; } add_filter( 'timeline_express_custom_fields' , 'add_custom_timeline_express_field' );
This example would add 3 new fields below the ‘Announcement Image’ field on the announcement post.
The first field is a simple text field. The second field is an example WYSIWYG, and the third is an email field.
Note: You can add as many fields as you would like, and display them on the front end using the get_post_meta() function.
Customize the ‘announcement’ slug (New v1.1.4)
Users can now define their own slug for announcement posts using the provided filter 'timeline-express-slug'
. This alters the URL structure of the announcement, possibly for SEO purposes. You would enter the following code into your active themes functions.php file.
After you enter the code into the functions.php file, you’ll want to refresh your permalinks. You can do so by going to ‘Settings > Permalinks’ and simply clicking save. That will prevent the 404 page you may see upon altering the slug.
Example:
// alter '/announcement/' to be '/event/' function timeline_express_change_announcement_slug( $slug ) { $slug = 'event'; return $slug; } add_filter('timeline-express-slug', 'timeline_express_change_announcement_slug' );
This example would change the default /announcement/
slug, to /event/
.
Alter the ‘Read More’ button text (New v1.1.3.1)
Users can now alter the ‘Read More’ button text using the provided gettext filter and the ‘timeline-express’ text domain.
Example:
// alter 'Read more' to say 'View Announcement' function timeline_express_change_readmore_text( $translated_text, $untranslated_text, $domain ) { switch( $untranslated_text ) { case 'Read more': $translated_text = __( 'View Announcement','timeline-express' ); break; } return $translated_text; } add_filter('gettext', 'timeline_express_change_readmore_text', 20, 3);
This example would alter ‘Read more’ to say ‘View Announcement’.
Add custom classes to the ‘Read More’ button (New v1.1.3.1)
Users can now add custom classes to the ‘Read More’ announcement button. This allows for greater control in fitting the Timeline into your currently active theme.
Parameters :
$button_classes = default button classes assigned to the ‘Read More’ button
Example:
// add a custom class to the Timeline Express readmore link function timeline_express_custom_readmore_class( $button_classes ) { return $button_classes . 'custom-class-name'; } add_filter( 'timeline-express-read-more-class' , 'timeline_express_custom_readmore_class' );
This example would print the following ‘Read More’ button HTML onto the page :
<a href="http://site.com/link-to-announcement" class="cd-read-more btn btn-primary custom-class-name">Read more</a>
Setup a custom date format for front end display (New v1.0.9)
New in version 1.0.9 is the localization of dates on the front end. The date format is now controlled by your date settings inside of ‘General > Settings’.
If, for one reason or another, you’d like to specify a different date format than provided by WordPress core you can use the provided filter timeline_express_custom_date_format
.
The one parameter you need to pass into your function is $date_format, which is (as it sounds) the format of the date.
Some formatting examples:
m.d.Y
– 11.19.2014d-m-y
– 11-19-14d M y
– 19 Nov 2014D j/n/Y
– Wed 11/19/2014l jS \of\ F
– Wednesday 19th of NovemberExample:
function custom_te_date_format( $date_format ) { $date_format = "M d , Y"; // will print the date as Nov 19 , 2014 return $date_format; } add_filter( 'timeline_express_custom_date_format' , 'custom_te_date_format' , 10 );
y – Numeric representation of a year, two digits.
D – Textual representation of a day, three letters Mon through Sun.
Y – Numeric representation of a year, four digits.
S – English ordinal suffix for the day of the month. Consist of 2 characters st, nd, rd or th.
F – Textual representation of a month, January through December.
M – Textual representation of a month, three letters Jan through Dec.
view more date formatting parameters
Load Your Own Single Announcement Template File (New v1.0.8)
By default all single announcements will try and load a single.php template file. If that can’t be found, we’ve done our best to implement a template for you. If your unhappy with the template file we’ve provided you have two options. Your first option is to copy over the single-announcement-template directory contained within the plugin into your active themes root. This will trigger the plugin to load that file instead. You can then customize this file to your hearts content without fear of losing any of your changes in the next update.
Your next option is to use our new filter for loading your own custom template file. If for whatever reason you’ve designed or developed your own single.php file which you would rather use, or you just want to use your themes page.php template instead, you can use the provided filter to change the loaded template. Here is an example ( you want to drop this code into your active theme’s functions.php file ) :
Example:
// By default Timeline Express uses single.php for announcements // you can load page.php instead // just change page.php to whatever your template file is named // keep in mind, this is looking in your active themes root for the template function custom_timeline_express_template_file( $template_file ) { $template_file = 'page.php'; return $template_file; } add_filter( 'timeline_express_custom_template' , 'custom_timeline_express_template_file' , 10 );
Specify Font Awesome Version (New 1.1.7.8)
Users can now specify which version of font awesome to load from the font awesome CDN. Alternatively, if the font awesome version is not found – the bundled fall back (version 4.6.1) will be used.
Example:
// use a different version of Font Awesome function timeline_express_alter_font_awesome_version( $version ) { $version = '4.4.0'; return $version; } add_filter( 'timeline_express_font_awesome_version', 'timeline_express_alter_font_awesome_version' );
The above example will load font awesome version 4.4.0 instead of the current stable version from the font awesome CDN.
[timeline-express]
to display the responsive, animated timeline. (Note: Timeline Express displays best on full width pages)Timeline Express - Announcement Creation Screen
Timeline Express - Admin Announcement Management
Timeline Express - Timeline Content Block
Timeline Express - Timeline Content Block Controls
Timeline Express - Timeline Content Block Demo
Timeline Express - Frontend Timeline Layout
Timeline Express - Responsive Layout (mobile devices)
Timeline Express - Admin Settings Page
Yes! Check out the demo we’ve set up on our site, which shows off some of the features of the pro version.
View the Timeline Express Demo
Not in the free version, but with our pro version you can create numerous timelines and assign posts to a single timeline or all timelines. Also with the pro version you can easily filter announcements by categories on the front end.
View the Timeline Express Pro Demo
Begin by simply installing the plugin. Once the plugin has been installed, go ahead and begin creating announcement posts. You’ll find a new menu item just below ‘Posts’.
After you have a substantial number of announcements set up, you’re ready to display the timeline on the front end of your site.
Timeline Express displays best on full width pages, but is not limited to them. Create a new page, and drop the shortcode into the page – [timeline-express]
.
Publish your page, and view it on the front end the see your new super sweet timeline! (scroll for animation effects!)
Yes! In version 1.2 and above, we have a templating engine built into the plugin – allowing you to fully customize both the announcement containers on the timeline or the single announcement page. All you have to do is copy over the proper templates.
Take a look at our documentation articles on customizations.
Due to a limitation with the built in php function strtotime()
, you may not be able to save dates prior to 1970. We’ve built out a premium add-on that works with both the free and pro versions of Timeline Express to allow dates to be saved between the years 1000-9999. If this is a feature you need, please consider purchasing the Historical Dates Add-On.
The free version limits you to one timeline. With the pro version, you can create unlimited number of timelines and even assign categories to your announcements.
You can assign categories and filter your timelines by category with the pro version only.
Breakpoints are set at 822px. The timeline will shift/re-adjust automatically based on the height of each announcement container.
The text-domain for all gettext functions is timeline-express
.
If you enjoy this plugin and want to contribute, we are always looking for people to help translate the plugin into their native language. Anyone who translates this plugin to 100% completion, will receive a single site license for Timeline Express Pro, valid for 1 full calendar year.
If you need help getting started, read through Codex article “[GlotPress]”(https://make.wordpress.org/polyglots/handbook/tools/glotpress-translate-wordpress-org/) for more information.
$
in favor of jQuery
.year-icon
to the announcement container when TIMELINE_EXPRESS_YEAR_ICONS
is defined and true.TIMELINE_EXPRESS_LEGACY_SINGLE_TEMPLATE
constant to enable legacy templates. eg: define( 'TIMELINE_EXPRESS_LEGACY_SINGLE_TEMPLATE', true );
.timeline_express_animation_disabled
filter to disable timeline animations on a per page basis, as needed.
– Introduced
timeline_express_scroll_to
filter to disable the jQuery page scroll to when a URL hash is set (eg: http://www.example.com/#announcement-title).
– Enhanced the add-ons page UX, allowing users to install & activate plugins directly from that page, via AJAX.
timeline_express_i10n_months
for adding months that are not yet supported.timeline_express_custom_date_format
filter so it is referenced in more locations.timeline_express_get_announcement_icon_markup()
, controlling the link wrap around the icon container. (Props @Arifi)curl_exec
before loading the usage tracking class.timeline_express_announcement_date_text
filter to alter the announcement date string (see: http://wp-timelineexpress.com/documentation/alter-announcement-date-string/)timeline-express-after-timeline
filter, passing in the query object instead of just the number of ->found_posts.jquery-masonry
reference from the WordPress timeline plugin.style.css
file, for readability & conciseness (removed excess declarations etc.).<strong>
tag to a <p>
tag.timeline_express_announcement_query
filter, to filter the final WP_Query object (including results).timeline_express_announcement_permalink
filter, to filter the read more link URL.get_timeline_express_add_ons()
, add_timeline_express_add_on
, remove_timeline_express_add_on
, timeline_express_generate_options_header
, timeline_express_generate_options_tabs
define( 'TIMELINE_EXPRESS_FONT_AWESOME_LOCAL', true );
– added to theme functions.php will load font awesome icons locally instead of Font Awesome CDN).orderby
variable on the admin list table.TIMELINE_EXPRESS_YEAR_ICONS
.timeline_express_get_announcement_date_timestamp
.helpers.php
file for easier reading.single-announcement
template page wrappers (no longer requires user interaction on most themes).timeline-express-page-wrappers-start.php
, timeline-express-page-wrappers-end.php
, timeline-express-sidebar.php
)single-timeline-express.php
( timeline_express_before_main_content
, timeline_express_after_main_content
,timeline_express_sidebar
)body.single-te_announcements .announcement-banner-image { width: 100% }
)timeline_express_frontend_excerpt
filter.limit
(integer, limiting the number of announcements to display), display
(‘Future’, ‘Past’ or ‘All’ to set which announcements will display on the timeline) and sort
(‘DESC’ or ‘ASC’ to set the order of the timeline).is_ssl()
checks.timeline_express_sanitize_date_format
, timeline_express_admin_render_date_format
, timeline_express_admin_column_date_format
, timeline_express_frontend_query_args
, timeline_express_frontend_date_filter
timeline_express_font_awesome_version
– see other notes.).timeline_express_custom_date_format
filter to allow users to alter that, as well as the date in the timeline.wp_remote_get()
when building the bootstrap dropdown.add_option();
call which was breaking previously stored options on activationtimeline_express_custom_fields
) which allows users to define their own custom fields to use on Timeline Announcement posts (see readme for example).timeline-express-read-more-class
which allows users to add custom classes to the ‘Read More’ buttontimeline_express_get_image_id()
to get attachment image IDs by URLtimeline_express_custom_date_format
)te_wp_trim_words_retain_formatting()
)