当前浏览:首页 / WordPress函数 / get_attachment_link()

get_attachment_link( int|object $post = null, bool $leavename = false )

检索附件的固定链接

attachment 附件more...

linkmore...


描述

这可以在WordPress循环中使用,也可以在其外部使用。


参数

$post

(int|object)(可选) Post ID或对象。默认使用全局$post

默认值: null

$leavename

(bool)(可选) 是否保留页面名称。

默认值: false


返回

(string) 附件固定链接。


说明

在“优雅的”固定链接结构下,函数返回类似http://wp.example.net/path_to_post/post_name/attachment_name的值。

在默认的固定链接结构下,或者如果WordPress无法构造一个优雅的URI,则函数返回类似http://wp.example.net/?attachment_id=n的内容,其中n是附件ID号。

您可以通过attachment_link过滤器更改此函数的输出。

如果您想直接链接到附件(而不是附件页面),可以使用函数wp_get_attachment_url(id)

注意:get_attachment_link 实际上返回一个URI,而 wp_get_attachment_link()返回HTML超链接。



源码

查看源码 官方文档


更新日志

版本描述
2.0.0开始引入

使用示例

  • 示例1

    默认用法
    由于标签不显示permalink,因此示例使用PHP echo命令。

    <?php 
    $attachment_id = 1; // ID of attachment
    $attachment_page = get_attachment_link( $attachment_id ); 
    ?>
    <a href="<?php echo esc_url( $attachment_page ); ?>"><?php echo get_the_title( $attachment_id ); ?></a>
    
    
  • 示例2

    将附加的图片和标题显示为列表
    要显示附加到特定页面的图像并将其显示为项目符号列表,可以使用以下选项:

    <ul>
    <?php if ( have_posts() ) : while ( have_posts() ) : the_post();    
    
    	$args = array(
    		'post_type'   => 'attachment',
    		'numberposts' => -1,
    		'post_status' => null,
    		'post_parent' => $post->ID
    	);
    
    	$attachments = get_posts( $args );
    	if ( $attachments ) {
    		foreach ( $attachments as $attachment ) {
    			echo '<li>';
    			the_attachment_link( $attachment->ID, true );
    			echo '<p>';
    			echo apply_filters( 'the_title', $attachment->post_title );
    			echo '</p></li>';
    		}
    	}
    endwhile; endif; ?>
    </ul>