In twenty fourteen theme, we’d like to know how to change the features content tag. Currently it’s set as featured
.
Now, we would like to know how to code this for different page templates.
We notice in page.php
there is a piece of code calling the template part featured-content
.
<?php
if ( is_front_page() && twentyfourteen_has_featured_posts() ) {
// Include the featured content template.
get_template_part( 'featured-content' );
}
?>
From our understanding this calls the file featured-content.php
. In this file, is there a way to decide the tag. We imagine you can do it using an if statement and the $tag
or $term
variable inside an array. But we’re not completely sure.
Our idea is to create three pages on our site, each using a different tag to show different posts in the featured content section.
Can this be done and can anyone provide us with the code or logic to do it?
Thanks in advance!
the LWdesign team
2 Answers
The internal implementation details of that feature are of questionable sanity.
- If you take a look at said
featured-content.php
template you would see - that it get posts from
twentyfourteen_get_featured_posts()
however - the only thing that function has is
twentyfourteen_get_featured_posts
filter - from quick look at which in peculiar fashion nothing is actually getting hooked
- because
twentyfourteen_setup()
declaresfeatured-content
feature - with configuration defining
featured_content_filter
as the one above - to which
Featured_Content
class hooks itsget_featured_posts()
method - which burrows further to
get_featured_posts_ids()
method - which calculates, caches, and returns those IDs
So there are a… few points at which you can work with… this. 🙂
From practical point of view you would probably want to hook into twentyfourteen_get_featured_posts
filter and conditionally return different set of posts as you need.