获取附加到的帖子图像的标题

时间:2013-09-25 作者:Danny

所以我找到了这篇帖子:Find the post an attachment is attached to 实施了Chip的建议但结果很奇怪。我正在尝试提取特定图像所附帖子的标题。这是我的问题:

<?php
    $args = array(
        \'post_type\' => \'attachment\',
        \'posts_per_page\' => -1,
        \'post_status\' => \'any\',
        \'post_parent\' => null,
        \'tax_query\' => array(
            array(
                \'taxonomy\' => \'post_tag\',
                \'field\' => \'slug\',
                \'terms\' => \'logo\'
            )
        )
    );

    $attachments = get_posts( $args );
    foreach ( $attachments as $image ) {
        // Get the parent post ID
        $parent_id = $image->post_parent;
        // Get the parent post Title
        $parent_title = get_the_title( $parent_id );
        // Get the parent post permalink
        $parent_permalink = get_permalink( $parent_id );
    }


    if ( $attachments ) {
        foreach ( $attachments as $post ) {

            $logoimg = wp_get_attachment_image($post->ID, \'Work Gallery\');
这是我所说的标题:echo \' \' . $parent_title . \' \';

这种类型的作品,但它是输出一个职位的标题,特别是对所有的图片上的页面。有没有想过为什么它不会动态地拾取每个与帖子标题相关的图像?

谢谢

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

这种类型的作品,但它是输出一个职位的标题,特别是对所有的图片上的页面。有没有想过为什么它不会动态地拾取每个与帖子标题相关的图像?

$attachments = get_posts( $args );
foreach ( $attachments as $image ) {

    // Get the parent post ID
    $parent_id = $image->post_parent;

    // Get the parent post Title
    $parent_title = get_the_title( $parent_id );

    // Get the parent post permalink
    $parent_permalink = get_permalink( $parent_id );
}
此代码在每个图像上循环。让我们手动调试它。

作为示例,假设有3个图像。

第一幅图像的父ID为1,标题为“Foo”,链接到该帖子,
第二幅图像的父ID为2,标题为“Bar”,链接到该帖子,
第三幅图像的父ID为3,标题为“Baz”,链接到该帖子,

因此,第一次通过循环:

$parent_id 设置为1,
$parent_title 设置为Foo,
$parent_permalink 设置为the link to Foo.

第二次通过循环:

$parent_id 设置为2,
$parent_title 设置为Bar,
$parent_permalink 设置为the link to Bar.

贴子“Foo”的所有数据都会被贴子“Bar”的数据覆盖。为什么?因为在将新数据写入之前,代码不会保存其他数据$parent_id, $parent_title$parent_permalink.

在通过回路的第三次跳闸时:

$parent_id 设置为3,
$parent_title 设置为Baz,
$parent_permalink 设置为the link to Baz.

贴子“Baz”的数据覆盖了贴子“Bar”的所有数据。

完成此循环后$parent_id, $parent_title$parent_permalink 变量只保存$attachments 大堆因此,之所以只使用最后一个父帖子,是因为代码告诉PHP要这样做。代码说,“扔掉那些其他值。”

您可能想做的事情如下:

$images = get_posts( $args );

if ( $images ) {

    foreach ( $images as $image ) {

        // Get the parent post ID
        $parent_id = $image->post_parent;

        // Get the parent post Title
        $parent_title = get_the_title( $parent_id );

        // Get the parent post permalink
        $parent_permalink = get_permalink( $parent_id );

        $logoimg = wp_get_attachment_image( $image->ID, \'Work Gallery\' );

结束

相关推荐

Resize uploaded images

Possible Duplicate:Resizing all images 我有一个我建立的新闻门户,客户想要不同大小的特色图片。我已经准备好了我想要的第一个尺寸,他们已经发布了大约200多篇帖子,都准备好了这个尺寸。现在,如果我改变大小,它只会在新帖子上改变/或重新上传当前的特色图片(手工操作太多了)。我的问题是,有没有办法调整上传图像的大小?