将附件帖子URL更改为文件URL

时间:2012-01-29 作者:Ian

我有一个客户,他的博客非常形象化。每次他们在帖子中上传图像时,都会使用附件帖子URL作为链接,而不是文件URL。问题是有一个图像插件,如果图像是指向文件的链接,它会自动很好地缩放图像,但如果图像是指向附件页的链接,它就无法正常工作。

有没有办法强制指向附件URL的所有链接指向文件URL?

我尝试重定向我的附件。但这不会改变索引中的链接。php或单个。php。谢谢你的帮助。我不能浏览和更改所有现有的帖子,也不能阻止客户将来这样做。

3 个回复
SO网友:WordPress Vampire

在主题内创建附件模板文件。因为我们只对图像感兴趣,所以文件应该是image.php

<?php 

if ( have_posts() ) { 
    the_post(); 
    $image_url = wp_get_attachment_url();
}

header(\'Location: \'.$image_url);

?>

Template Hierarchy

SO网友:ungestaltbar

add_filter(\'image_send_to_editor\', \'image_send_to_editor_rewrite\', 1, 8);

function image_send_to_editor_rewrite($html, $id, $caption, $title, $align, $url, $size, $alt = \'\') {

    $html = get_image_tag($id, $alt, $title, $align, $size);
    $rel = $rel ? \' rel="attachment wp-att-\' . esc_attr($id).\'"\' : \'\';

        // get file url
    $src = wp_get_attachment_image_src($id, $size);

    if ( $url )
            // force href to file url $src[0]
    $html = \'<a href="\' . esc_attr($src[0]) . "\\"$rel>$html</a>";

    return $html;   
}
编辑:抱歉,这对现有帖子也没有帮助。对于现有的帖子,可以挂接到“the\\u content”,使用一些正则表达式来查找?attachment\\u id=X,获取文件url并替换“href”,但这也会延迟页面加载,如果您使用的是具有%postname%的永久链接,则不会使事情变得更简单。

但对于以后的帖子,以上都是有用的。快速(&A);脏的,做的工作,但链接到附件页将不再可能。如果您的客户故意单击“附件帖子url”按钮,但图像始终链接到文件,也可能会导致糟糕的用户体验。

也许最好挂接到thickbox中,用javascript或简单地通过css删除/隐藏“attachment post url”按钮

SO网友:Doug Cassidy

这是将插入的图片链接到原始文件而不是附件页的非常简单的方法。http://wordpress.org/support/topic/make-image-attachments-default-link-to-original-image?replies=4

WordPress中的yoursite下有一个隐藏的选项页。com/wp管理/选项。php在无休止的未记录选项列表上,您可以设置“image\\u default\\u link\\u type”的值。您可能希望将其设置为“file”(不带引号)

或者,这将设置到“大”图像的链接,这可能是最佳选择。因此,当他们去插入,它将自动主要设置为大。

抱歉,这两项工作都没有追溯效力。

add_filter(\'attachment_fields_to_edit\',   \'large_attachment_fields_to_edit\' , 0,  2);
function large_attachment_fields_to_edit($fields, $post){
    if (substr($post->post_mime_type,0,5) == \'image\'){
            $html = "<input type=\'text\' class=\'text urlfield\' name=\'attachments[$post->ID][url]\' value=\'" . esc_attr(array_shift( wp_get_attachment_image_src($post->ID, \'large\', false) )) . "\' /><br />
                            <button type=\'button\' class=\'button urlnone\' data-link-url=\'\'>" . __(\'None\') . "</button>
                            <button type=\'button\' class=\'button urllarge\' data-link-url=\'".esc_attr(array_shift( wp_get_attachment_image_src($post->ID, \'large\', false) ))."\'>Large File URL</button>
                            <button type=\'button\' class=\'button urlfile\' data-link-url=\'" . esc_attr(wp_get_attachment_url($post->ID)) . "\'>" . __(\'Original File URL\') . "</button>
                            <button type=\'button\' class=\'button urlpost\' data-link-url=\'" . esc_attr(get_attachment_link($post->ID)) . "\'>" . __(\'Post URL\') . "</button>
                    ";
            $fields[\'url\'][\'html\'] = $html;
    }
    return $fields;
}

结束

相关推荐

Delete all user attachments

在buddypress中,当用户想要删除自己的帐户-->时,是否可以删除使用媒体上载的所有附件条目和图像?注意:图片不附在帖子上,因为im不允许用户创建普通帖子,他们只能使用媒体上传图片。提前谢谢。