wp_get_attachment_link( int|WP_Post $id, string|array $size = 'thumbnail', bool $permalink = false, bool $icon = false, string|false $text = false, array|string $attr = '' )
Retrieve an attachment page link using an image or icon, if possible.
Parameters
- $id
-
(Optional) Post ID or post object.
- $size
-
(Optional) Image size. Accepts any valid image size, or an array of width and height values in pixels (in that order). Default 'thumbnail'.
Default value: 'thumbnail'
- $permalink
-
(Optional) Whether to add permalink to image.
Default value: false
- $icon
-
(Optional) Whether the attachment is an icon.
Default value: false
- $text
-
(Optional) Link text to use. Activated by passing a string, false otherwise.
Default value: false
- $attr
-
(Optional) Array or string of attributes.
Default value: ''
Return
(string) HTML content.
Source
File: wp-includes/post-template.php
function wp_get_attachment_link( $id = 0, $size = 'thumbnail', $permalink = false, $icon = false, $text = false, $attr = '' ) {
$_post = get_post( $id );
if ( empty( $_post ) || ( 'attachment' !== $_post->post_type ) || ! $url = wp_get_attachment_url( $_post->ID ) ) {
return __( 'Missing Attachment' );
}
if ( $permalink ) {
$url = get_attachment_link( $_post->ID );
}
if ( $text ) {
$link_text = $text;
} elseif ( $size && 'none' != $size ) {
$link_text = wp_get_attachment_image( $_post->ID, $size, $icon, $attr );
} else {
$link_text = '';
}
if ( '' === trim( $link_text ) ) {
$link_text = $_post->post_title;
}
if ( '' === trim( $link_text ) ) {
$link_text = esc_html( pathinfo( get_attached_file( $_post->ID ), PATHINFO_FILENAME ) );
}
/**
* Filters a retrieved attachment page link.
*
* @since WP-2.7.0
*
* @param string $link_html The page link HTML output.
* @param int $id Post ID.
* @param string|array $size Size of the image. Image size or array of width and height values (in that order).
* Default 'thumbnail'.
* @param bool $permalink Whether to add permalink to image. Default false.
* @param bool $icon Whether to include an icon. Default false.
* @param string|bool $text If string, will be link text. Default false.
*/
return apply_filters( 'wp_get_attachment_link', "<a href='" . esc_url( $url ) . "'>$link_text</a>", $id, $size, $permalink, $icon, $text );
}
Changelog
Version | Description |
---|---|
WP-4.4.0 | The $id parameter can now accept either a post ID or WP_Post object. |
WP-2.5.0 | Introduced. |