如何在从媒体上传器插入时更改文件链接(<a url="file_link"> Name </a>)格式

时间:2013-01-05 作者:Makarand Mane

我想更改一些默认的wordpress功能。

从媒体库中选择文件并按“插入页面”(图像文件除外)时,它将以格式插入<a url="file_link"> Name </a> 我想更改此默认格式。

选项1:我想在标记之前添加额外的标记或选项2:我想根据目标文件链接扩展名为标记分配额外的类。

因为我想设计一个带有文件扩展名图标图像的标签(如下载按钮)

2 个回复
SO网友:Jen

您可以使用CSS属性选择器来完成此操作,而无需更改WP Admin或HTML中的任何内容。谷歌搜索"css file type icons" 得出了几个结果,但我将在这里为您解释基本想法。

属性选择器允许您使用匹配的属性设置任何html标记的样式。有many ways to use attribute selectors (input[type="text"], 有人吗?)但你需要抓住href 值,尤其是文件扩展名。例如,如果要在任何pdf文件之前添加pdf图标,可以执行以下操作:

a[href$=".pdf"] { 
  background:transparent url(../images/pdf-icon.png) center left no-repeat;
  display:inline-block;
  padding-left:20px;
  line-height:18px; 
}
The$ 表示从字符串末尾开始匹配。这将适用于所有现代浏览器,甚至IE7。

如果您想变得更加别致,可以将所有图标放在一个图像文件中,然后使用背景定位来正确调整每个图标:

a[href$=".pdf"], a[href$=".doc"], a[href$=".zip"] { 
  background:transparent url(../images/pdf-icon.png) no-repeat;
  display:inline-block;
  padding-left:20px;
  line-height:18px; 
}
a[href$=".pdf"] { background-position: center 0; }
a[href$=".doc"] { background-position: center -20px; }
a[href$=".zip"] { background-position: center -40px; }

EDIT: (Thanks to @toscho!)

一个更有趣的技巧是将图标添加为content: url(image.gif) 而不是背景图像。这样,您就可以控制高度;宽度,创建更紧凑的图标精灵图像,甚至可以做一些有趣的事情,比如使用图标字体。

a[href$=".pdf"]:before {
  content: url(path/to/image);
  // more styles //
}
看看IcoMoon custom icon font creator (免费!)便于实施。

SO网友:Michael Ruta

有一点肮脏的黑客,将此添加到您的函数中。php;

<?php
add_filter(\'wp_get_attachment_link\', \'wpse7812_modify-attachment-link\');
function wpse7812_modify-attachment-link($link) {
    global $post;
    return str_replace(\'<a href\', \'<a class="myClassName" href\', $link);
}
?>
在哪里myClasssName 可以是你想要的任何东西。

结束

相关推荐

以编程方式通过URL获取图像并保存在Uploads文件夹中

我参与了从另一个CMS到WordPress的大规模迁移。我们有一个数据库的副本,并且已经解决了如何提取内容并使用wpdb 班然而,有几千张图片,我们想自动拉过来,生成各种大小的图片,然后贴到帖子上,以节省大约一周的工作!有没有办法通过URL从远程站点获取图像并将其保存在我的wp uploads文件夹中?我想这是wp_http 但我对此并不熟悉。一旦我得到图像并保存它,我就可以使用wp_generate_attachment_metadata 创建各种尺寸和wp_insert_attachment 把它贴在