在Genesis中创建多个循环,一个帖子然后是20个,每个都有自定义字段

时间:2014-02-03 作者:angiemeeker

我需要使用Genesis框架为自定义post类型归档模板创建一个自定义循环,该模板尽可能类似于此页面(www.manta.com/totd)。

这是我所拥有的东西的粘贴,它不起作用。

http://pastebin.com/g1EK5f6M

以及当前存档模板http://pastebin.com/A6UufNMu 这就产生了:m.angiemeekerdesigns。com/总计

有人能帮我了解为什么我当前的代码不起作用吗?

更新:在做了一些工作之后,我来到了下面的粘贴-它的工作大约是我需要的80%,除了顶部第一个循环的一篇文章(功能)显示了下面第二个循环的文章应该显示的内容,反之亦然。

现在,这里有一个指向该网站页面的链接:http://m.angiemeekerdesigns.com/totd

还有我所掌握的密码。

<?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();

1 个回复
SO网友:angiemeeker

这就是成功的原因。您可以在m.angiemekerdesigns上看到结果。com/总计。我仍在努力使较低级别的帖子在摘录中的字数更少,风格也略有不同,但我认为这是一个与此不同的问题。

/**
 *
 * 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
add_filter( \'excerpt_more\', \'sbt_auto_excerpt_more\', 20 );
function sbt_auto_excerpt_more( $more ) {
        return \'aaa\';
}


add_filter( \'get_the_excerpt\', \'sbt_custom_excerpt_more\', 20 );
function sbt_custom_excerpt_more( $output ) {
        return preg_replace(\'/<a[^>]+>Continue reading.*?<\\/a>/i\',\'\',$output);
}



 //* 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\', \'totd_do_loop\');
//add_action( \'genesis_loop\', \'totd_teasers_do_loop\');

add_action(\'genesis_loop\', \'totd_do_loop\');
function totd_do_loop() {
        global $wp_query;
        // Set up your query here
        $paged = ( get_query_var( \'paged\' ) ) ? get_query_var( \'paged\' ) : 1;
        $query = array(
                \'post_type\'      => \'tipoftheday\',
                \'orderby\'        => \'date\',
                \'posts_per_page\' => \'11\',
                \'paged\'          => $paged,

        );

        $wp_query = new WP_Query( $query );

        if( $wp_query->have_posts() ):
                while( $wp_query->have_posts() ): $wp_query->the_post();
                        // Get the custom fields
                                // 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 \'<span class="date time published" title="%1$s">\' , do_shortcode(\'[post_date]\'),\'</span>\' ;
                echo \'<div class="tip-excerpt"><p><div class="entry-content">\';
     echo \'<div class=h1 entry-title"><a href="\'.get_permalink().\'"title="\'.get_the_title().\'">\' . get_the_title() . \'</a></div>\';
                                            echo the_excerpt();
                                echo \'<div class="entry-terms">\' , do_shortcode(\'[post_terms taxonomy="totd_tags" before="See More Tips For: " taxonomy="totd_tags"] \'),\'</div>\' ;
                                if( $wp_query->current_post == 0 && !is_paged() ) {
                                    echo \'<div class="entry-terms">\';
                                        echo \'<div class="share">Share This Tip:</div>\';
                                        echo \'<div class="addthis_toolbox addthis_default_style">\';
                                            echo \'<a class="addthis_button_preferred_1"></a>\';
                                            echo \'<a class="addthis_button_preferred_2"></a>\';
                                            echo \'<a class="addthis_button_preferred_3"></a>\';
                                            echo \'<a class="addthis_button_preferred_4"></a>\';
                                            echo \'<a class="addthis_button_compact"></a>\';
                                            echo \'<a class="addthis_counter addthis_bubble_style"></a>\';
                                        echo \'</div>\';
                                        echo \'<script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=manta"></script>\';
                                    echo \'</div>\';
                                }

                echo \'</div></p><div class="divider"></div></div>\';
        }

                endwhile;
                // Pagination! Woo!
                genesis_posts_nav();
        endif;
        // Reset the query
        wp_reset_query();
        }

genesis();

结束

相关推荐

Pagination on Custom Loop

我想将最新帖子的样式与自定义页面上某个类别中的所有其他帖子的样式不同。到目前为止,我有下面的代码,它正是这样做的:<?php if (have_posts()) : ?> <?php query_posts(\"cat=4&showposts=1\"); ?> <?php while (have_posts()) : the_post(); ?> (Style1)<?php the_title(); ?><