i want to change the address of the file attachment link to wordpress [example: http://www.sitename.com/category/sub-category/article.html/attachment/image etc.]. i did research on the subject a few days, but could not get any results..
looking at the structure of the connection! after “.html“, “/” mark does not look very nice to come. also the “attachment” as the fixing of that section, for WordPress users of different languages are missing a very large. i mean; rewrite.php file links to the author for the “author” from the base. this too, edit with the help of a simple function;
global $wp_rewrite; $wp_rewrite->author_base = 'example'; $wp_rewrite->flush_rules();
i can not for this “attachment” :/ i tried so hard but i could not deal with this problem…
anyway, i wanted to ask you!
i’m not a coder (i’m a graphic designer). i want to do, so maybe things can make the limits of logic (: image.php file as it is sufficient to open a url more sense to me …
this link; http://www.sitename.com/category/sub-category/article.html/attachment/image
whether such; http://www.sitename.com/category/sub-category/article.html?file=image
i do not know would not open the image.php file in the form of “?file=image“. so i can carry out your suggestions.
thank you in advance.
regards,
Metin METE
Answers:
Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.
Method 1
Actually, you can always just use a query parameter, even if you have the “pretty” permalinks enabled. So instead of /category/sub-category/article.html/attachment/image you can go to /?attachment=image. The only case when this “breaks down” is when you go to /category/sub-category/article.html?attachment=image, because WordPress gets confused: it tries to query for a post and an attachment at the same time. However, this is very simple to handle: check for the request, and if it is an attachment remove the other parameters.
add_action( 'parse_request', 'wpse5015_parse_request' );
function wpse5015_parse_request( $wp )
{
if ( array_key_exists( 'attachment', $wp->query_vars ) ) {
unset( $wp->query_vars['name'] );
unset( $wp->query_vars['year'] );
unset( $wp->query_vars['monthnum'] );
}
}
Now you only have to change the generated attachment URLs. Since they are almost in the correct format, we can just so some search and replace:
add_filter( 'attachment_link', 'wpse5015_attachment_link', 10, 2 );
function wpse5015_attachment_link( $link, $id )
{
// If the attachment name is numeric, this is added to avoid page number conflicts
$link = str_replace( 'attachment/', '', $link );
$attachment = get_post( $id );
$link = str_replace( '/' . $attachment->post_name . '/', '?attachment=' . $attachment->post_name, $link );
return $link;
}
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0