I need to create a custom loop for a custom post type archive template, that is as similar to this page as possible (www.manta.com/totd) using the Genesis framework.
Here is a paste of what I have, which is not working.
As well as the current archive template http://pastebin.com/A6UufNMu which produces this:
m.angiemeekerdesigns.com/totd
Can someone help me learn why my current code isn’t working?
Update: After working on it some, I’ve come to the paste below – it’s working about 80% of what I need, except that the one post from the first loop at the top (feature) is showing the content that the posts from the second loop below should be showing, and vice versa.
Here’s a link to page on the site now: http://m.angiemeekerdesigns.com/totd
and the code as far as I’ve gotten.
<?php
/**
*
* Display the Tip of the Day Custom Post Type archive custom fields using
* ACF.
*
* @author Angie Meeker
* @uses Advanced Custom Fields
*/
add_action('genesis_entry_content','genesis_do_post_title', 2);
//* Removes Continue Reading from the echoed excerpt
function sbt_auto_excerpt_more( $more ) {
return 'aaa';
}
add_filter( 'excerpt_more', 'sbt_auto_excerpt_more', 20 );
function sbt_custom_excerpt_more( $output ) {return preg_replace('/<a[^>]+>Continue reading.*?</a>/i','',$output);
}
add_filter( 'get_the_excerpt', 'sbt_custom_excerpt_more', 20 );
//* Add Tip of the Day body class to the head
add_filter( 'body_class', 'add_tiparchives_body_class' );
function add_tiparchives_body_class( $classes ) {
$classes[] = 'tiparchives-post-type-archive-{tipoftheday}';
return $classes;
}
// Return Category and Tip of the Day on Single Posts
add_action ( 'genesis_before_content', 'show_totd', 9 );
function show_totd() {
echo '<div class="totd-cats-title">Tip of the Day</div>';
}
// Remove Post Author
add_filter( 'genesis_post_info', 'remove_post_author_totd_posts' );
function remove_post_author_totd_posts($post_info) {
$post_info = '[post_date]';
return $post_info;
}
/** Replace the standard loop with our custom loop */
remove_action( 'genesis_loop', 'genesis_do_loop' );
add_action( 'genesis_loop', 'manta_tips_feature' );
add_action( 'genesis_loop', 'manta_tips_teasers' );
/** Show the first first post from the TOTD Custom Post Type */
function manta_tips_feature() {
echo '<div class="entry-highlight">Current Tip of the Day</div>';
global $paged; // current paginated page
global $query_args; // grab the current wp_query() args
$args = array(
'post_type' => 'tipoftheday',
'posts_per_page'=> '1',
'paged' => $paged,
);
genesis_custom_loop( wp_parse_args($query_args, $args) );
// Return if CPT Tip of the Day
add_action( 'genesis_after_entry_content', 'manta_tips_pre_features' );
function manta_tips_pre_features() {
// Store the pre tips data
$tips_data_pre = array(
'totd_tags' => get_field( 'totd_tags' ),
'tip_article_headline' => get_field( 'tip_article_headline' ),
'article_author' => get_field( 'article_author' ),
'article_author_link' => get_field( 'article_author_link' ),
);
// Only output if we have tips data
if ($tips_data_pre['totd_tags'] != '' ||
$tips_data_pre['tip_article_headline'] != '' ||
$tips_data_pre['article_author'] != '' ||
$tips_data_pre['article_author_link'] != '') {
echo '<div class="tip-excerpt"><p><div class="entry-content">';
echo '<div class="entry-terms">' , do_shortcode('[post_terms taxonomy="totd_tags" before="See More Tips For: " taxonomy="totd_tags"] '),'</div>' ;
echo '<div class="entry-terms">
<div class="share">Share This Tip:</div>
<div class="addthis_toolbox addthis_default_style">
<a class="addthis_button_preferred_1"></a>
<a class="addthis_button_preferred_2"></a>
<a class="addthis_button_preferred_3"></a>
<a class="addthis_button_preferred_4"></a>
<a class="addthis_button_compact"></a>
<a class="addthis_counter addthis_bubble_style"></a>
</div>
<script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=manta"></script>
</div>
</div></div>';
echo '</p><div class="divider"></div>';
}
}
}
/** Show the first 10 previous posts from the TOTD Custom Post Type */
function manta_tips_teasers() {
echo '<div class="entry-highlight">Previous Tips</div>';
global $paged; // current paginated page
global $query_args; // grab the current wp_query() args
$args = array(
'post_type' => 'tipoftheday',
'posts_per_page'=> '10',
'paged' => $paged,
);
genesis_custom_loop( wp_parse_args($query_args, $args) );
// Return if CPT Tip of the Day
add_action( 'genesis_after_entry_content', 'manta_tips_teaser_pre' );
function manta_tips_teaser_pre() {
// Store the pre tips data
$tips_data_pre = array(
'totd_tags' => get_field( 'totd_tags' ),
);
// Only output if we have tips data
if ($tips_data_pre['totd_tags'] !='') {
echo '<div class="tip-excerpt"><p><div class="entry-content">';
echo '<div class="entry-terms">' , do_shortcode('[post_terms taxonomy="totd_tags" before="See More Tips For: " taxonomy="totd_tags"] '),'</div>' ;
echo '</p><div class="divider"></div>';
}
}
}
genesis();
This is what worked. You can see the results at m.angiemeekerdesigns.com/totd. I am still working on getting the lower posts to have fewer words in their excerpts, and to have slightly different styling, but I think that’s a different question than this one.