When someone creates a post in a custom post type and uploads an image the Link URL box shows it as the attachment URL. What I would like is for it to be the permalink to the post. Is there a way to do it without modifying core files?
When someone creates a post in a custom post type and uploads an image the Link URL box shows it as the attachment URL. What I would like is for it to be the permalink to the post. Is there a way to do it without modifying core files?
Share Improve this question asked Jan 31, 2011 at 1:43 kelkel 4291 gold badge9 silver badges29 bronze badges 3- Can you give example URLs and if possible annotated screenshots so we can more easily understand exactly what you are asking. As is, I'd only be guessing what you want. – MikeSchinkel Commented Jan 31, 2011 at 3:20
- @Mike you can take a look flesheatingzipper On some of the post the image links to the attachment page. The front page is posts from 4 custom posts types. The images are just inserted into the post and by default they have the attachment URL for the images but I would like that to be the permalink. There is an option for Post URL when adding an image but clicking it does nothing. I'm guessing this is because it's a custom post type. – kel Commented Jan 31, 2011 at 4:56
- Thanks. In future, always update your original question if someone asks for clarification; it makes it more likely others will see your new info. – MikeSchinkel Commented Jan 31, 2011 at 8:11
2 Answers
Reset to default 2Thanks for answering the comments and thanks to @בניית אתרים providing the screenshot; now I have a better idea of what you wanted.
Based on what you asked for I think what would be ideal would be for the dialog box to simple generate your preferred URL; that way you don't have to remember to click. You can accomplish what you are after by using the 'attachment_fields_to_edit'
hook and modifying the sub-elements of the passed array: $form_fields['url']['html']
.
You can copy the following code to your theme's functions.php
file, or to a .PHP
file for a plugin you might be writing:
add_filter('attachment_fields_to_edit','your_attachment_fields_to_edit',10,2);
function your_attachment_fields_to_edit($form_fields,$post) {
$url = get_permalink($post->ID);
/* UNCOMMENT THESE LINES IF FOR PARENT POST URL AND NOT ATTACHMENT POST URL
$url_parts = explode('/',trim($url,'/'));
array_pop($url_parts);
$url = implode('/',$url_parts) . '/';
*/
$form_fields['url']['html'] =<<<HTML
<input type="text" class="text urlfield" name="attachments[{$post->ID}][url]"
value="{$url}" />
HTML;
return $form_fields;
}
Here's what it looks like with the commented-out code so that the full permalink to the attachment post shows:
Here's what it looks like with the commented-out code so that the full permalink to the attachment post shows:
Note that one caveat is this only works after you have saved the parent post because the permalink is evidently not finalized until then. I'm sure there's a workaround but I'll leave that as an exercise for the reader (like my professors used to say...)
P.S. I simultaneously love your domain name, and I feel quite queasy about it at the same time! ;-)
On the media uploader, Once an image is uploaded , before you click the "insert to post" you need to click the "none" button under link url. here, they say a picture is worth a 1000 words: