0

我在 Wordpress 中创建了一个“portafolio”自定义类型,我想在我编写的这段代码中查询一个特定的帖子(确切地说是 ID = 780),它检索该帖子中的所有附件图像:

<?php if (have_posts()) : while (have_posts()) : the_post(); ?>


    <?php if ( $post->post_type == 'portafolio' && $post->post_status == 'publish' ) {
            $attachments = get_posts( array(
                'post_type' => 'attachment',
                'posts_per_page' => -1,
                'post_parent' => $post->ID,
                'exclude'     => get_post_thumbnail_id(),
                'orderby'           => 'menu_order',
                'order'           => 'ASC'  

    ) );?>

    <?php
            if ( $attachments ) {
                foreach ( $attachments as $attachment ) {
                    $class = "post-attachment mime-" . sanitize_title( $attachment->post_mime_type );
                    $thumbimg = wp_get_attachment_image_src( $attachment->ID, 'original', false ); ?>


    {image : '<?php echo '' . $thumbimg[0] . ''; ?>', title : '<?php wp_title("",true); ?>', thumb : ''},

    <?php               
                }

            }
        }
    ?>


<?php endwhile; endif; ?>

但是,我不知道我应该在该代码中的哪个位置查询我想要检索的特定帖子。

有任何想法吗?

编辑:

我努力了:

<?php
    query_posts( array('p' => 780) );
    if (have_posts()) : while (have_posts()) : the_post();
    ?>

    <h2>Test</h2>

    <?php endwhile; endif; ?>

只是看看我是否能够检索到一些东西,没有运气。

如果这有帮助,我这样做是为了在 Wordpress 上创建一个页面,以显示一个名为“portafolio”的自定义类型的单个帖子,然后将其分配为首页。

4

2 回答 2

1

您可以通过在循环query_posts之前调用来更改查询:

query_posts( array('p' => $myPostID) );

只需在循环之前调用此函数。你的最终代码可能是这样的:

<?php
query_posts( array('p' => 780) );
if (have_posts()) : while (have_posts()) : the_post();
?>

您可以指定更多参数,例如作者或帖子类型等。如果您在主循环之后还有另一个循环,请在之后rewind_posts()调用。endwhile; endif;

编辑:

稍后发表一些评论......如果您正在使用自定义帖子类型,请务必将“post_type”添加到您的函数中。例如:

query_posts( array('p' => 780, 'post_type' => 'book') );
于 2012-08-29T14:38:23.177 回答
1

您可以简单地使用get_post

$my_id = 780;
$my_post = get_post($my_id);
于 2012-08-29T14:28:11.163 回答