我正在研究一个新的Wordpress主题;默认索引视图显示最近帖子的摘录。一些帖子将涉及文件下载,并包括图像,描述以及指向所托管文件的位置的链接。这些类型的帖子的图像将锚定链接(其他类型的帖子可能包含未链接的图像)。
对于这些类型的帖子,我希望图片在摘录中显示时链接到他们的条目的完整帖子视图(single.php),但是当显示为部分时,相同的图像链接到外部下载链接完整的帖子。
我不确定我到底能做到什么。 任何帮助将不胜感激!
答案 0 :(得分:1)
因为我没有定义帖子缩略图,并且因为帖子可能包含或不包含多个图像,所以我最终这样做了:
我在摘录中关闭了标签(我在摘录中有一个启用标签的摘录插件),然后我将以下内容添加到function.php文件中:
function catch_that_image() {
global $post, $posts;
$first_img = ''; ob_start();
ob_end_clean();
$output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i',
$post->post_content, $matches);
$first_img = $matches [1] [0];
if(empty($first_img)){
//Defines a default image
$first_img = "/images/default.jpg"; }
return $first_img;}
然后我将以下内容添加到帖子标题和摘录/内容之间的主索引模板文件中:
<p><a href="<?php the_permalink() ?>" alt="<?php _e('Read full article', 'theme');?>" title="<?php _e('Read full article', 'theme');?>"><img src="<?php echo catch_that_image() ?>"></a></p>
随机说明:由于样式原因,它包含在
中。
Thanx再次引导我朝着正确的方向前进。
答案 1 :(得分:0)
如果您的主题使用'the_excerpt()'作为首页,我认为您可以在functions.php中添加过滤器,并使用正则表达式将链接href从下载链接更改为永久链接。
之类的,
function replace_link($content) {
if (is_home())
return preg_replace('regular_expression', get_permalink(), $content);
else
return $content;
}
add_filter('the_excerpt', 'replace_link');
我不能在不知道你的下载链接是什么的情况下创建一个实际的正则表达式