janochen
  • 0
Мастер

Пользовательское поле получает значение другого сообщения страницы вместо текущего?

  • 0

Я использую этот же файл в двух файлах: single.php и home.php :

(вне цикла).

(И в отдельных сообщениях, и на главной странице есть #mainbar div, но изображение должно быть другим)

<?php // Set and display custom field
        $mainbar_right_title = get_post_meta($post->ID, 'Mainbar Right Title', true);
        $mainbar_right_image = get_post_meta($post->ID, 'Mainbar Right Image', true); ?>
        <div class="float-right">
            <h2><?php echo $mainbar_right_title; ?></h2>
            <img src="<?php echo $mainbar_right_image ?>" alt="" />
        </div> <?php
    ?>
    </div>

Я думал, что домашняя страница получит значение своего собственного пользовательского поля, но вместо этого получает значение отдельного сообщения. Это стандартное поведение или я что-то не так делаю?

РЕДАКТИРОВАТЬ: я попытался добавить значение к другому отдельному сообщению, и изображение действительно относится к сообщению, а не к другому, поэтому проблема заключается только в домашней странице.

домашний.php:

<?php
/**
 * Template Name: Home
 * @package WordPress
 * @subpackage Prominent
 * @since Prominent 1.0
 */
get_header(); ?>

<?php get_sidebar(); ?>

<div id="content">
    <?php // Insert image using custom field
        $postimageurl = get_post_meta($post->ID, 'Intro Image', true); ?>
        <div class="block-1">
            <img src="<?php echo $postimageurl; ?>" alt="Post Pic" />
        </div> <?php
    ?>

    <?php // Start the Loop
        if ( have_posts() ) while ( have_posts() ) : the_post();
    ?>  <div class="block-2 padding-top">
            <?php the_content(); ?>
        </div><!-- .entry-content -->

    <?php endwhile; // end of the loop. ?>

    <?php // Create and run custom loop
        $custom_posts = new WP_Query();
        $custom_posts->query('post_type=blocks&location=Front Page&section=Mainbar');
        while ($custom_posts->have_posts()) : $custom_posts->the_post();
    ?>  <div class="block-2 border-top">
            <h2><a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( 'Permalink to %s', 'twentyten' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php the_title(); ?></a></h2>
    <?php endwhile; ?>

        <?php // Set and display custom field
            $mainbar_left_title = get_post_meta($post->ID, 'Mainbar Left Title', true);
            $mainbar_left_image = get_post_meta($post->ID, 'Mainbar Left Image', true); ?>
            <div class="float-left">
                <h2><?php echo $mainbar_left_title; ?></h2>
                <img src="<?php echo $mainbar_left_image ?>" alt="" />
            </div> <?php
        ?>

        <?php // Set and display custom field
            $mainbar_right_title = get_post_meta($post->ID, 'Mainbar Right Title', true);
            $mainbar_right_image = get_post_meta($post->ID, 'Mainbar Right Image', true); ?>
            <div class="float-right">
                <h2><?php echo $mainbar_right_title; ?></h2>
                <img src="<?php echo $mainbar_right_image ?>" alt="" />
            </div> <?php
        ?>
        </div>

    <?php // Create and run custom loop
        $custom_posts = new WP_Query();
        $custom_posts->query('post_type=blocks&location=Front Page&section=Sidebar');
        while ($custom_posts->have_posts()) : $custom_posts->the_post();
    ?>  <div class="block-3 border-top">
            <h2><a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( 'Permalink to %s', 'twentyten' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php the_title(); ?></a></h2>
            <a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( 'Permalink to %s', 'twentyten' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php the_post_thumbnail(); ?></a>
            <p><?php the_excerpt(); ?></p>
            <p><?php echo get_post_meta($post->ID, "Other_Work", true); ?></p>
        </div>
    <?php endwhile; ?>

    <?php // Create and run custom loop
        $custom_posts = new WP_Query();
        $custom_posts->query('post_type=blocks&location=Front Page&section=Featured');
        while ($custom_posts->have_posts()) : $custom_posts->the_post();
    ?>  <div class="block-2 border-top block-height-2">
            <h2><a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( 'Permalink to %s', 'twentyten' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php the_title(); ?></a></h2>
            <a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( 'Permalink to %s', 'twentyten' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php the_post_thumbnail('large'); ?></a>
            <p><?php the_excerpt(); ?></p>
        </div>
    <?php endwhile; ?>

    <?php // Create and run custom loop
        $custom_posts = new WP_Query();
        $custom_posts->query('post_type=blocks&location=Front Page&section=Content');
        while ($custom_posts->have_posts()) : $custom_posts->the_post();
    ?>  <div class="block-3 border-top block-height-2">
            <h2><a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( 'Permalink to %s', 'twentyten' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php the_title(); ?></a></h2>
            <a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( 'Permalink to %s', 'twentyten' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php the_post_thumbnail(); ?></a>
            <p><?php the_excerpt(); ?></p>
            <p><?php the_meta(); ?></p>
        </div>
    <?php endwhile; ?>
</div><!-- #content -->

<?php get_footer(); ?>
Share
  1. Вы делаете что-то не так.

    Прежде всего, var_dump(__FILE__); убедитесь, что вы находитесь в ожидаемом шаблоне.

    Если это не рассеет туман, опубликуйте весь шаблон для контекста.

    • 0
  2. Я понял, почему.

    Он получает идентификатор из этой строки выше:

    $custom_posts->query('post_type=blocks&location=Front Page&section=Mainbar');
    

    Я думал, что Worpdress получает идентификаторы файлов (а не отдельных лупов).

    Это устранило проблему:

    <?php wp_reset_query(); ?>
    

    Должен ли я включать этот сброс в конце каждого пользовательского цикла?

    • 0

Оставить ответ

You must login to add an answer.