获取附件父帖子的标题和URL

时间:2015-05-19 作者:palekjram

Goal:从我的图像。php,我正在显示附件图像和一些描述。我还想从最初发布的地方获取帖子。我只需要标题和url,这样你就可以从原来的帖子链接回来。

Problem:它没有显示正确的帖子标题和url。相反,它显示了我发布的第一篇和最后一篇帖子。当我将数字改为“1”而不是“-1”时,名称只会更改为第一篇帖子或最后一篇帖子。

Code:来自此帖子:Find the post an attachment is attached to

<?php
    // Get all image attachments
    $all_images = get_posts( array(
    \'post_type\' => \'attachment\',
    \'numberposts\' => -1,
    ) );
    // Step through all image attachments
    foreach ( $all_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 );
    }

    echo "This image is posted to: <a href=\'".$parent_permalink ."\' >".$parent_title."</a>";
?>

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

所有附件都有一个post父级,您可以使用该父级进行访问$post->post_parent 回路内部或get_queried_object()->post_parent 在您的image.php 或类似的单贴页面。(见我的问题here 以及answer by @gmazzap 为什么你应该避免$post 环路外)

现在您有了post parent ID,可以很容易地重写函数:(注意:未测试)

function get_parent_post_anchor()
{
    /*
     * Make sure we are on an attachment page, else bail and return false
     */ 
    if ( !is_attachment() )
        return false;

    /*
     * Get current attachment object
     */
    $current_attachment = get_queried_object();

    /*
     * Get the permalink of the parent
     */
    $permalink = get_permalink( $current_attachment->post_parent );

    /*
     * Get the parent title
     */
    $parent_title = get_post( $current_attachment->post_parent )->post_title;

    /*
     * Build the link
     */
    $link = \'<a href="\' . $permalink  . \'"  title="\' . $parent_title . \'">\' . $parent_title . \'</a>\';

    return $link;
}
然后可以按如下方式使用它

echo get_parent_post_anchor();

结束

相关推荐

how to edit attachments?

在将例如文件附加到帖子时,如何在事后编辑/删除它们?在帖子编辑器中找不到任何内容。谢谢