Php 如果链接是PDF文件,则相应地设置样式
我正在为一个客户开发一个网站,他是一个考试委员会。他们有许多内容页,其中包含教学大纲的摘要详细信息,并且需要从文本中直接链接到PDF教学大纲文件。 还有一个页面仅用于PDF文件,我目前正在WordPress中创建这些自定义帖子类型,但它们有自己的图标设置,我不希望受到我将要描述的PHP规则的影响。 这是一个PHP问题,而不是WordPress问题,所以不要担心 假设我有一个链接,新的教学大纲。有了WordPress,如果不了解HTML,就无法向链接添加类,而在我的客户机及其老员工的情况下,HTML是不存在的。他们将看到如何使用WordPress post或页面编辑器中的add Media(添加媒体)按钮向PDF文件添加链接,这将简单地创建指向.PDF文件的链接。这里的问题是,它只是一个链接,客户端希望用户立即知道它是一个PDF文件,而不是一个页面,以便更容易找到相关的教学大纲文件。因此,我建议创建一个规则,在链接到.pdf文件的任何链接旁边添加一个.png图标,它也会改变链接的颜色 有人知道我怎样才能做到这一点吗?我一直在寻找自动完成这一功能的WordPress插件,但它们要么已经过时,要么很难使用,也就是说,员工需要HTML知识来重新设计链接的样式 我在网上找到了这个代码片段,但不知道它的方向是否正确Php 如果链接是PDF文件,则相应地设置样式,php,css,wordpress,if-statement,hyperlink,Php,Css,Wordpress,If Statement,Hyperlink,我正在为一个客户开发一个网站,他是一个考试委员会。他们有许多内容页,其中包含教学大纲的摘要详细信息,并且需要从文本中直接链接到PDF教学大纲文件。 还有一个页面仅用于PDF文件,我目前正在WordPress中创建这些自定义帖子类型,但它们有自己的图标设置,我不希望受到我将要描述的PHP规则的影响。 这是一个PHP问题,而不是WordPress问题,所以不要担心 假设我有一个链接,新的教学大纲。有了WordPress,如果不了解HTML,就无法向链接添加类,而在我的客户机及其老员工的情况下,HTM
$whitelist = array(".pdf");
foreach ($whitelist as $item) {
if (preg_match("/$item\$/i", $_FILES['uploadfile']['name'])) {
}
else {
redirect_to("index.php");
}
}
想法?试试这个:
将此代码添加到functions.php文件中
添加“媒体过滤器”“发送到编辑器”“我的过滤器”“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锚定标记文件添加一个类。尝试以下操作:
将此代码添加到functions.php文件中
添加“媒体过滤器”“发送到编辑器”“我的过滤器”“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锚定标记文件添加一个类。这只需CSS即可完成,它支持所有主要浏览器,包括IE7+。不需要添加任何额外的类或元素 下面的CSS将指向指向.pdf的任何链接,更改链接颜色,给它一些左填充,并在创建的空间中应用背景图像:
a[href$=".pdf"] {
background: url(images/pdf-icon.png) no-repeat 0 50%;
padding-left: 25px;
color: red;
}
演示:这只需CSS即可完成,它支持包括IE7+在内的所有主要浏览器。不需要添加任何额外的类或元素 下面的CSS将指向指向.pdf的任何链接,更改链接颜色,给它一些左填充,并在创建的空间中应用背景图像:
a[href$=".pdf"] {
background: url(images/pdf-icon.png) no-repeat 0 50%;
padding-left: 25px;
color: red;
}
演示:使用@tw16的答案提供了一种简单而类似的方法来使用字体图标,而不是静态图像。对于希望使用Fontawesome或其他支持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对这一点的简化方法 使用@tw16的答案提供了一种简单而类似的方法来使用字体图标,而不是静态图像。对于希望使用Fontawesome或其他支持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对这一点的简化方法 您的客户端将从“添加媒体”按钮向中添加.pdf文件?您想在.pdf文件链接中添加一些类吗?您的客户端将从“添加媒体”按钮向中添加.pdf文件吗?你想在这个.pdf文件链接中添加一些类吗?如何阻止这个类出现在一个带有链接的图像正在逃离我的视线之后。。。有什么想法吗?如何阻止这个出现在一个带有链接的图像后,我现在不知道。。。有什么想法吗?