显示页面列表和自定义字段

时间:2015-02-09 作者:balardi

我试图在$parent\\u id下显示子页面列表。这是在循环内的页面模板中完成的。您将看到,Im还试图获取一个高级自定义字段值,在本例中是一个图像url。除了图像url,我的一切都正常工作,目前我在图像源中获得的值为“80”。有什么想法吗?

<?php
$parent_id = $posts[0]->ID;
$args=array(
  \'post_parent\' => $parent_id,
  \'post_type\' => \'page\',
  \'post_status\' => \'publish\',
  \'posts_per_page\' => -1,
  \'caller_get_posts\'=> 1
);
$my_query = null;
$my_query = new WP_Query($args);
if( $my_query->have_posts() ) {
  echo \'List of Posts\';
  while ($my_query->have_posts()) : $my_query->the_post(); ?>

<p><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></p>

<?php if ( get_post_meta( get_the_ID(), \'story_detail_story_image\', true ) ) : ?>
<a href="<?php the_permalink() ?>" rel="bookmark">
    <img class="thumb" src="<?php echo get_post_meta( get_the_ID(), \'story_detail_story_image\', true ); ?>" alt="<?php the_title(); ?>" />
</a>
<?php endif; ?>
<?php   endwhile;
}
wp_reset_query();  // Restore global post data stomped by the_post().
?>

1 个回复
最合适的回答,由SO网友:Privateer 整理而成

从我在那里看到的情况来看,我认为您的问题是story\\u detail\\u story\\u image中的元值正在存储图像id。

尝试替换以下内容

<?php if ( get_post_meta( get_the_ID(), \'story_detail_story_image\', true ) ) : ?>
<a href="<?php the_permalink() ?>" rel="bookmark">
    <img class="thumb" src="<?php echo get_post_meta( get_the_ID(), \'story_detail_story_image\', true ); ?>" alt="<?php the_title(); ?>" />
</a>
<?php endif; ?>
具有以下内容

<?php
$image_id = get_post_meta( get_the_ID(), \'story_detail_story_image\', true );
if ( ! is_int( $image_id ) ) {
    echo "<p>Image ID not an integer. It is:</p><pre>"; var_dump( $image_id ); echo "</pre>";
} else if ( $image_id ) {

    # The next line tries to grab an image with that id in thumbnail size
    $image_data = wp_get_attachment_image_src( $image_id, \'thumbnail\' );
    if ( ! is_array( $image_data ) ) {
        echo "<p>Image data not an array! It is:</p><pre>"; var_dump( $image_data ); echo "</pre>";
    } else if ( is_array( $image_data ) ) {
        # The next line grabs the url, which is stored in the first element of the array
        $image_url = $image_data[0];

        # the next three lines just grab post information
        $post_id = get_the_ID();
        $post_title = esc_attr( get_the_title() );
        $post_link = get_permalink();

        # The following displays the link. I just prefer heredoc syntax but you should be able to change it back if wanted
        echo <<<HTML
<a href="{$post_link}" rel="bookmark">
    <img class="thumb" src="{$image_url}" alt="{$post_title}" />
</a>
HTML;

    }
}
?>
这应该获取图像id,使用它获取url,然后绘制链接。

(修改为输出错误)。

结束

相关推荐

显示页面列表和自定义字段 - 小码农CODE - 行之有效找到问题解决它

显示页面列表和自定义字段

时间:2015-02-09 作者:balardi

我试图在$parent\\u id下显示子页面列表。这是在循环内的页面模板中完成的。您将看到,Im还试图获取一个高级自定义字段值,在本例中是一个图像url。除了图像url,我的一切都正常工作,目前我在图像源中获得的值为“80”。有什么想法吗?

<?php
$parent_id = $posts[0]->ID;
$args=array(
  \'post_parent\' => $parent_id,
  \'post_type\' => \'page\',
  \'post_status\' => \'publish\',
  \'posts_per_page\' => -1,
  \'caller_get_posts\'=> 1
);
$my_query = null;
$my_query = new WP_Query($args);
if( $my_query->have_posts() ) {
  echo \'List of Posts\';
  while ($my_query->have_posts()) : $my_query->the_post(); ?>

<p><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></p>

<?php if ( get_post_meta( get_the_ID(), \'story_detail_story_image\', true ) ) : ?>
<a href="<?php the_permalink() ?>" rel="bookmark">
    <img class="thumb" src="<?php echo get_post_meta( get_the_ID(), \'story_detail_story_image\', true ); ?>" alt="<?php the_title(); ?>" />
</a>
<?php endif; ?>
<?php   endwhile;
}
wp_reset_query();  // Restore global post data stomped by the_post().
?>

1 个回复
最合适的回答,由SO网友:Privateer 整理而成

从我在那里看到的情况来看,我认为您的问题是story\\u detail\\u story\\u image中的元值正在存储图像id。

尝试替换以下内容

<?php if ( get_post_meta( get_the_ID(), \'story_detail_story_image\', true ) ) : ?>
<a href="<?php the_permalink() ?>" rel="bookmark">
    <img class="thumb" src="<?php echo get_post_meta( get_the_ID(), \'story_detail_story_image\', true ); ?>" alt="<?php the_title(); ?>" />
</a>
<?php endif; ?>
具有以下内容

<?php
$image_id = get_post_meta( get_the_ID(), \'story_detail_story_image\', true );
if ( ! is_int( $image_id ) ) {
    echo "<p>Image ID not an integer. It is:</p><pre>"; var_dump( $image_id ); echo "</pre>";
} else if ( $image_id ) {

    # The next line tries to grab an image with that id in thumbnail size
    $image_data = wp_get_attachment_image_src( $image_id, \'thumbnail\' );
    if ( ! is_array( $image_data ) ) {
        echo "<p>Image data not an array! It is:</p><pre>"; var_dump( $image_data ); echo "</pre>";
    } else if ( is_array( $image_data ) ) {
        # The next line grabs the url, which is stored in the first element of the array
        $image_url = $image_data[0];

        # the next three lines just grab post information
        $post_id = get_the_ID();
        $post_title = esc_attr( get_the_title() );
        $post_link = get_permalink();

        # The following displays the link. I just prefer heredoc syntax but you should be able to change it back if wanted
        echo <<<HTML
<a href="{$post_link}" rel="bookmark">
    <img class="thumb" src="{$image_url}" alt="{$post_title}" />
</a>
HTML;

    }
}
?>
这应该获取图像id,使用它获取url,然后绘制链接。

(修改为输出错误)。

相关推荐