无法从自定义Wordpress帖子类型中获取附件/媒体?

时间:2015-06-15 15:31:33

标签: php html wordpress image underscores-wp

我试图在我插入管理界面中的测试帖子的Wordpress php代码中获取附加/插入的图像。我点击了"添加媒体"按钮并上传了我的照片并更新了帖子(其中front-page是自定义帖子类型)。

(我点击了这个按钮):

enter image description here

然而,在我的生命中,我似乎无法找回与该帖子相关的图片。如果我设置Feature Image(缩略图),我可以得到它,但不能插入图像。以下是我尝试过的内容:

循环附件(没有运气):

$attachments = query_posts(
                array(
                'post_type' => 'front-page',  // only get "attachment" type posts
                'post_parent' => $post->ID,   // only get attachments for current post/page
                'posts_per_page' => -1        // get all attachments
              )
            );
foreach($attachments as $attachment) {
    echo get_the_ID();
    echo wp_get_attachment_image( $attachment->ID, 'full' );
}

wp_attached_image(帖子ID)(没有运气):

wp_get_attachment_image( $post->ID );

获取所有帖子(没有运气):

<?php
$args = array( 
    'post_type' => 'front-page', 
    'post_mime_type' => 'image',
    'numberposts' => -1, 
    'post_status' => null, 
    'post_parent' => $post->ID 
); 
$attached_images = get_posts( $args );
echo $attached_images[0];
?>

获取帖子库图片(没有运气)

get_post_gallery_images( $post->ID );

我真的迷失了为什么我无法检索图像。几乎我在网上找到的所有建议都已经用尽了,并且想知道它是否与我的自定义帖子类型有什么关系?任何帮助将不胜感激。

4 个答案:

答案 0 :(得分:0)

我认为你错过了带回声的结果代码(正如我在下面所做的那样)或打印或输出。 我设法在不久前用这个代码做了..希望它有所帮助 - (在这个中使用fancybox)

<?php
$attachments = get_posts( array( 
'post_type' => 'attachment',
'post_mime_type'=>'image',
'posts_per_page' => -1,
'post_status' => 'any',
'post_parent' => $post->ID)
);

if ( $attachments ) {
foreach ( $attachments as $attachment ) {
$src = wp_get_attachment_image_src( $attachment->ID, full);     
$html = '<a class="fancybox" href="'.$src[0].'">';
$html .= wp_get_attachment_image( $attachment->ID, 'gallery-thumb') .'</a>';
echo $html;
}
}
?>

答案 1 :(得分:0)

你可能意味着这个(在这种情况下,代码表示你应该使用get_posts()):

http://codex.wordpress.org/Template_Tags/get_posts#Show_attachments_for_the_current_post

答案 2 :(得分:0)

这就是我最终修复它的方法: (评论以解释我的所作所为)。

<?php
        // Argument array to hold parameters for get_post() method.
        $args = array(
            'post_type' => 'attachment', 
            'posts_per_page' => -1, 
            'post_status' => 'any', 
            'post_parent' => null
            );

        // Holds the URL of the image.
        $image_url = '';

        // If we have a thumbnail in the post, use that as the main image.
        if (has_post_thumbnail($post->ID)) {
            $image_url = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID))[0];
        }
        // Otherwise, if we have an attachment image, use that as the main image.
        else if (get_posts($args)) {
            // Simple test to see if we can display attachments from any post.
            $attachments = get_posts($args);
            if ( $attachments ) {
                $first_photo = $attachments[0];
                $image_url = wp_get_attachment_url($first_photo->ID , false );
            }
        }
        // If there are no images, just display the text. 
        else {
            echo "No images";
        }
    ?>

答案 3 :(得分:-1)

<form id="form1" name="form1" method="post" enctype="multipart/form-data" action="">
     <input name="name" type="image" src="resimler/azalt.gif" />
</form>

试试这个。

的print_r($ _请求);你想去哪里看。它会起作用。