0

カスタム投稿タイプ (チーム) と対応する高度なカスタム フィールドをプルアップし、テンプレート チーム ページに表示するページを作成しようとしています。このチュートリアルに従って、Wordpress (非ジェネシス) 用に作成された 1 つのコードをマージすることにより、Genesis でこれを行っています。

ある程度の進歩はありましたが、高度なカスタム フィールドで行き詰まりました。たとえば<?php the_title(); ?>、カスタム投稿のタイトルではなく、ページのタイトルを実際に呼び出します。また、他のフィールド (位置、電話など) は機能していません。まったく呼び出されていません。このコードをジェネシスにどのようにマージしたかが問題だと確信しています。

<?php
/**
 * This file adds the city team template to any Genesis 2.0+ Theme.
 *
 * @author Jim Thornton
 * @package InboundFound
 * @subpackage Customizations
 */ 

/*
Template Name: Team
*/
?>

<?php
remove_action( 'genesis_loop', 'genesis_do_loop' );
add_action( 'genesis_loop', 'your_custom_loop' );

function your_custom_loop() { 


                    // Get 'team' posts
                    $team_posts = get_posts( array(
                        'post_type' => 'team',
                        'posts_per_page' => -1, // Unlimited posts
                        'orderby' => 'title', // Order alphabetically by name
                    ) );

                    if ( $team_posts ):
                    ?>
                    <section class="row profiles">
                        <div class="intro">
                            <h2>Meet The Team</h2>
                            <p class="lead"></p>
                        </div>

                        <?php 
                        foreach ( $team_posts as $post ): 
                        setup_postdata($post);

                        // Resize and CDNize thumbnails using Automattic Photon service
                        $thumb_src = null;
                        if ( has_post_thumbnail($post->ID) ) {
                            $src = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'team-thumb' );
                            $thumb_src = $src[0];
                        }
                        ?>
                        <article class="col-sm-6 profile">
                            <div class="profile-header">
                                <?php if ( $thumb_src ): ?>
                                <img src="<?php echo $thumb_src; ?>" alt="<?php the_title(); ?>, <?php the_field('team_position'); ?>" class="img-circle">
                                <?php endif; ?>
                            </div>

                            <div class="profile-content">
                                <h3><?php the_title(); ?></h3>
                                <p class="lead position"><?php the_field('team_position'); ?></p>
                                <?php the_content(); ?>
                            </div>

                            <div class="profile-footer">
                                <a href="tel:<?php the_field('team_phone'); ?>"><i class="icon-mobile-phone"></i></a>
                                <a href="mailto:<?php echo antispambot( get_field('team_email') ); ?>"><i class="icon-envelope"></i></a>
                                <?php if ( $twitter = get_field('team_twitter') ): ?>
                                <a href="<?php echo $twitter; ?>"><i class="icon-twitter"></i></a>
                                <?php endif; ?>
                                <?php if ( $linkedin = get_field('team_linkedin') ): ?>
                                <a href="<?php echo $linkedin; ?>"><i class="icon-linkedin"></i></a>
                                <?php endif; ?>
                            </div>
                        </article><!-- /.profile -->
                        <?php endforeach; ?>
                    </section><!-- /.row -->
                    <?php endif; 

}

genesis();
4

1 に答える 1

0

「グローバル $post 変数への参照を渡す必要があります。そうしないと、the_title() などの関数が正しく機能しません。」

https://codex.wordpress.org/Function_Reference/setup_postdata#Parameters

于 2015-08-31T12:54:19.110 に答える