最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

Link images to post permalink - custom post types

programmeradmin0浏览0评论

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
Add a comment  | 

2 Answers 2

Reset to default 2

Thanks 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:

发布评论

评论列表(0)

  1. 暂无评论