我正在为一位客户开发一个网站,他是一个考试委员会。他们有许多内容页面,其中包含关于教学大纲的摘要详细信息,并且需要从文本中直接链接到PDF教学大纲文件。还有一个专门用于PDF文件的页面,我目前正在WordPress中制作这些自定义帖子类型,但它们有自己的图标设置,我不想受到我即将描述的PHP规则的影响。(这更像是一个PHP问题,而不是WordPress问题,所以不要担心。)
假设我有一个链接,新教学大纲。使用WordPress,如果不了解HTML,就无法将类添加到链接中,而在我的客户及其相当老的学校员工的情况下,HTML是不存在的。他们将展示如何使用WordPress帖子或页面编辑器中的"添加媒体"按钮添加PDF文件的链接,只需创建一个指向.PDF文件的链接。这里的问题是,它只是一个链接,客户希望用户立即知道它是一个PDF文件,而不是一个页面,以便更容易找到相关的教学大纲文件。因此,我建议创建一个规则,在链接到.pdf文件的任何链接旁边添加一个.png图标,它也会更改链接的颜色。
有人知道我是怎么做到的吗?我一直在寻找能自动做到这一点的WordPress插件,但它们要么已经过时,要么很难使用(即,员工需要HTML知识来重新设计链接的样式。)
我在网上找到了这个代码片段,但不知道它是否是正确的方向。
$whitelist = array(".pdf");
foreach ($whitelist as $item) {
if (preg_match("/$item'$/i", $_FILES['uploadfile']['name'])) {
}
else {
redirect_to("index.php");
}
}
想法?
这只需要CSS就可以完成,它支持包括IE7+在内的所有主流浏览器。不需要添加任何额外的类或<img>
元素。
下面的CSS将针对.pdf
的任何链接,更改链接颜色,给它一些左填充,并在创建的空间中应用背景图像:
a[href$=".pdf"] {
background: url(images/pdf-icon.png) no-repeat 0 50%;
padding-left: 25px;
color: red;
}
演示:http://jsfiddle.net/xuBpG/1/
试试这个:
将此代码添加到functions.php
文件中。
add_filter('media_send_to_editor','my_filter_pdf',20,3);
function my_filter_pdf($html, $id) {
$attachment = get_post($id); //fetching attachment by $id passed through
$mime_type = $attachment->post_mime_type; //getting the mime-type
if ($mime_type == 'application/pdf') { //checking mime-type
$src = wp_get_attachment_url( $id );
$html = '<a href="'.$src.'" class="any-class-for-pdf-files">File</a>';
return $html; // return new $html
}
return $html;
}
这是一个函数,当你将pdf文件插入帖子时,它将向.pdf
锚标记文件添加一个类。
使用@tw16的答案提供了一种简单而相似的方法来使用Font Awesome图标,而不是静态图像。对于那些希望使用Font真棒或其他支持unicode的图标库的人,请尝试以下操作:
/* MIME TYPE ICONS */
a[href$=".pdf"]::after {
font-family: "fontawesome";
content: "'0020'f1c1";
color: inherit
}
a[href$=".doc"]::after {
font-family: "fontawesome";
content: "'0020'f1c2";
color: inherit
}
a[href$=".xls"]::after {
font-family: "fontawesome";
content: "'0020'f1c3";
color: inherit
}
当然,您可以使用::before
或::after
伪类,这取决于您希望图标的位置(左或右)。
感谢tw16对此采取的简单方法。