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.
Description Description
Parameters Parameters
- $id
-
(int|WP_Post) (Optional) Post ID or post object.
- $size
-
(string|array) (Optional) Image size. Accepts any valid image size, or an array of width and height values in pixels (in that order).
Default value: 'thumbnail'
- $permalink
-
(bool) (Optional) Whether to add permalink to image.
Default value: false
- $icon
-
(bool) (Optional) Whether the attachment is an icon.
Default value: false
- $text
-
(string|false) (Optional) Link text to use. Activated by passing a string, false otherwise.
Default value: false
- $attr
-
(array|string) (Optional) Array or string of attributes.
Default value: ''
Return Return
(string) HTML content.
Source 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 ) || ! wp_get_attachment_url( $_post->ID ) ) { return __( 'Missing Attachment' ); } $url = wp_get_attachment_url( $_post->ID ); 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 2.7.0 * @since 5.1.0 Added the $attr parameter. * * @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. * @param array|string $attr Array or string of attributes. Default empty. */ return apply_filters( 'wp_get_attachment_link', "<a href='" . esc_url( $url ) . "'>$link_text</a>", $id, $size, $permalink, $icon, $text, $attr ); }
Expand full source code Collapse full source code View on Trac
Changelog Changelog
Version | Description |
---|---|
4.4.0 | The $id parameter can now accept either a post ID or WP_Post object. |
2.5.0 | Introduced. |
User Contributed Notes User Contributed Notes
You must log in before being able to contribute a note or feedback.
Link Attachment to Post
This example will link the attachment to an attachment page.
´Show Medium Size Attachment
The default image sizes of WordPress are “thumbnail”, “medium”, “large” and “full” (the image you uploaded). These image sizes can be configured in the WordPress Administration Media panel under Settings > Media.
Link Text to Attachment
This example returns an HTML hyperlink with “My link text” linking to an attachment file.
Link Post Title to Attachment
This example returns an HTML hyperlink with the post title linking to an attachment file.
Change Icon Directory
WordPress can use media icons to represent attachment files on your blog and in the admin interface, if those icons are available. For images it returns the thumbnail. For other media types it looks for image files named by media type (e.g.
audio.jpg
) in the directory:wp-includes/images/crystal/
.This example shows how you can change this directory to a folder called “images” in your theme:
wp-content/themes/yourtheme/images
. Create the folder and put the “media type images” in there. To tell WordPress the directory has changed put this in the current theme’sfunctions.php
file:Expand full source codeCollapse full source code