1

カスタム投稿タイプを初めて使用するのではなく、論文でカスタム投稿タイプを初めて作成/実装します。

Reed Write プラグインを使用して、カスタム投稿タイプを作成しました。このサイトは Thesis 1.8.5 を使用しています。

次のページ (http://www.snyderleadership.com/press-releases/) では、カスタム投稿タイプのコンテンツに続いてメイン コンテンツをドロップインしています。

custom_functions.php ファイルを使用してカスタム ページ テンプレートを作成し、カスタム投稿タイプのコンテンツに対して db を呼び出しました。これが私のコードです:

/* CUSTOM PRESS RELEASE TEMPLATE - ADDED by BRETT ATKIN */

function press_releases_page() {
if (is_page('press-releases') || is_page('583')) { ?>

<div id="content">
    <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
    <div class="post_box">
    <div class="headline_area"><h1><?php the_title(); ?></h1></div>
    <div class="format_text">
    <?php the_content(); ?>
    <?php endwhile; ?>
    <?php endif ?>
    <?php
        $original_query = $wp_query;
        $wp_query = null;

        $args = array (
        'post_type' => 'press-release',
        'post_status' => 'publish',
        'posts_per_page' => -1,
        'orderby' => 'date',
        'order' => 'DESC'
        );
        $wp_query = new WP_Query($args);
        ?>
    <div id="press-releases">
        <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
        <div id="press-wrapper">
            <div id="press-image">
                <?php echo wp_get_attachment_image(get_post_meta($post->ID, 'release_image', true)); ?>
            </div><!-- end press-image div -->
            <div id="press-information">
                <p class="press-date"><?php echo get_post_meta($post->ID, 'release_date', true); ?></p>
                <p class="press-link"><a href="<?php echo get_post_meta($post->ID, 'release_link', true); ?>" target="_blank"><?php echo get_post_meta($post->ID, 'release_title', true); ?></a></p>
                <p class="press-author"><?php echo get_post_meta($post->ID, 'release_author', true); ?></p>
            </div><!-- end press-information div -->
            <div style="clear:both;"></div>
        </div><!-- end press-wrapper div -->
        <?php endwhile; endif; wp_reset_postdata(); ?>
    </div><!-- end press-releases div -->
    </div>
    </div>
    </div><!-- end content -->
    <?php echo thesis_sidebars(); ?>
<?php } }

add_action('thesis_hook_custom_template', 'press_releases_page');

カスタム投稿タイプのデータを取得していないだけで、すべてが正しく機能しているようです。

他のサイトでこれを (カスタム テーマを使用して) 行ったので、ここで何か間違ったことをしたのか、それとも論文の問題なのかわかりません。

どんな助けでも素晴らしいでしょう。

ありがとう

ブレット

4

2 に答える 2

1

これが最終的な作業コードです。地元の WP Guru の友人と maiorano84 の助けに感謝します。原因はわかりませんでしたが、問題なく解決できました。

function press_releases_page() {
if (is_page('press-releases') || is_page('583')) { ?>

<div id="content">
    <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
    <div class="post_box">
    <div class="headline_area"><h1><?php the_title(); ?></h1></div>
    <div class="format_text">
    <?php the_content(); ?>
    <?php endwhile; ?>
    <?php endif ?>

    <?php
        $original_query = $wp_query;
        $wp_query = null;

        $args = array (
        'post_type' => 'press-release',
        'post_status' => 'publish',
        'posts_per_page' => -1,
        'orderby' => 'date',
        'order' => 'DESC'
        );
        $wp_query = new WP_Query($args);
    ?>

    <div id="press-releases">
        <?php if ( $wp_query->have_posts() ) : while ( $wp_query->have_posts() ) : $wp_query->the_post(); ?>
        <?php $results = get_post_custom(); ?>
        <div id="press-wrapper">
            <div id="press-image"><?php echo wp_get_attachment_image($results['release_image'][0] ); ?></div><!-- end press-image div -->
            <div id="press-information">
                <p class="press-date"><?php echo $results['release_date'][0] ?></p> 
                <p class="press-link"><a href="<?php echo $results['release_link'][0] ?>" target="_blank"><?php echo $results['release_title'][0] ?></a></p>
                <p class="press-author"><?php echo $results['release_author'][0] ?></p>
            </div><!-- end press-information div -->
            <div style="clear:both;"></div>
        </div><!-- end press-wrapper div -->
        <?php endwhile; endif; wp_reset_query(); wp_reset_postdata(); ?>
    </div><!-- end press-releases div -->
    </div>
    </div>
    </div><!-- end content -->
    <?php echo thesis_sidebars(); ?>
<?php } }

remove_action('thesis_hook_custom_template', 'thesis_custom_template_sample');
add_action('thesis_hook_custom_template', 'press_releases_page');
于 2012-12-21T21:13:08.997 に答える
0

これを変更してみてください:

<div id="press-releases">
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<div id="press-wrapper">

これに:

<div id="press-releases">
<?php if ( $wp_query->have_posts() ) : while ( $wp_query->have_posts() ) : $wp_query->the_post(); ?>
<div id="press-wrapper">

アップデート:

他に確認できる唯一のことは、投稿データをリセットしていないことと、$wp_query 変数が実際には Wordpress グローバルであることです。リセット関数を使用して、WP_Query インスタンス名を次のように変更してみてください。

<?php
    wp_reset_query();
    wp_reset_postdata();

    $args = array (
    'post_type' => 'press-release',
    'post_status' => 'publish',
    'posts_per_page' => -1,
    'orderby' => 'date',
    'order' => 'DESC'
    );
    $query = new WP_Query($args);
    ?>
<div id="press-releases">
    <?php if ( $query->have_posts() ) : while ( $query->have_posts() ) : $query->the_post(); ?>

更新 2:

ドキュメントにラッパーが書き込まれるようになったので、情報を正規化する必要があります。通常の投稿属性の代わりにメタデータを使用しないようにしてください。あなたのメタデータ「release_image」は、サーバー上のどこかにある画像へのリンクだと思います:

<?php if ( $query->have_posts() ) : while ( $query->have_posts() ) : $query->the_post();
?>
    <div id="press-wrapper">
        <div id="press-image">
            <img src="<?php echo get_post_meta(get_the_ID(), 'release_image', true); ?>" />
        </div><!-- end press-image div -->
        <div id="press-information">
            <p class="press-date"><?php echo the_date(); ?></p>
            <p class="press-link"><a href="<?php the_permalink(); ?>" target="_blank"><?php the_title(); ?></a></p>
            <p class="press-author"><?php the_author(); ?></p>
        </div><!-- end press-information div -->
        <div style="clear:both;"></div>
    </div><!-- end press-wrapper div -->
    <?php endwhile; endif; wp_reset_postdata(); ?>
于 2012-12-20T23:31:49.053 に答える