Favorites plugin provides a way to save favorites, likes, bookmarks, or any other similar types of data with customizable button text. In this article we shall add a button in the entry header’s post info on archives and single post pages to favorite posts along with favorite count for logged in members.
Non logged-in visitors will be set to see only the favorite count.
For members we can create a Page that shows the list of posts they have added as favorites and a button to clear the favorites.
While the tutorial has been written for Genesis Sample child theme it should work with minor adjustments in any Genesis child theme.
Step 1
Install and activate Favorites.
In this example since we want to enable Favorites only for logged in users, go to Settings > Favorites and untick “Enable Favorites”.
In the Display tab, enable the post types for which Favorites should be enabled and tick ‘Favorite Count’.
Step 2
Add the following in child theme’s functions.php:
// Customize entry meta in the entry header to show Favorite button for logged in users and Favorites count for non logged in users | |
add_filter( 'genesis_post_info', 'sk_post_info_filter' ); | |
function sk_post_info_filter( $post_info ) { | |
if ( is_user_logged_in() ) { | |
$post_info = '[post_date] by [post_author_posts_link] [post_comments] [post_edit] [favorite_button]'; | |
} else { | |
$post_info = '[post_date] by [post_author_posts_link] [post_comments] [post_edit] <span class="favorite-count">Favorited: [favorite_count] times</a>'; | |
} | |
return $post_info; | |
} |
Step 3
Add the following in child theme’s style.css and modify to suit:
.entry-meta .simplefavorite-button { | |
float: right; | |
padding: 0; | |
background-color: transparent; | |
color: #333; | |
text-transform: none; | |
} | |
.favorite-count { | |
float: right; | |
} |
Step 4
Create a Page titled say, Favorites having the following:
[user_favorites include_links="true" post_types="post" include_buttons="false"]
[clear_favorites_button]