设置存档模板的特色图像

时间:2012-09-20 作者:Jason McCreary

我想为我的主题的存档模板设置一个特色图像。据我所知,在WordPress管理员中没有这样做的方法(如页面和帖子)。

我正在考虑编写一个函数来过滤当前上载的特色图像,并将模板与文件名匹配。可能有点复杂。

我也知道有主题选项。但这似乎需要管理很多事情。

您建议如何做到这一点,以便于特色图像管理(主题->标题)和易于维护。。。

5 个回复
SO网友:henrywright

WordPress中有很多档案。标签档案、日期档案、类别档案、术语档案、作者档案。你指的是哪个档案?

您可以从尝试分类图像插件开始http://wordpress.org/extend/plugins/taxonomy-images/

SO网友:MrFox

这很古老,但这是谷歌在这个主题下的第一次搜索。

我解决这个问题的方法是创建一个新页面。不要将其命名为与存档页相同的名称(Wordpress不喜欢与存档页同名的页面,这会导致问题),您可以将其命名为其他任何名称。设置特色图像,然后使用以下代码在存档模板上调用:

$post_id = 8; 
$queried_post = get_post($post_id);
$src = wp_get_attachment_image_src(get_post_thumbnail_id($queried_post->ID), \'\') ;
$thumb_id = get_post_thumbnail_id($post_id);
?>
<img src="<?php echo $src[0]; ?>" class="img-responsive" />
要分解它:

$post_id = 8;
是新页面的id号。

$src = wp_get_attachment_image_src(get_post_thumbnail_id($queried_post->ID), \'\') ; 
查找附加到此页面的特色图像

<img src="<?php echo $src[0]; ?>" class="img-responsive" /> 
回显新页面中的特色图像。

SO网友:mirage

您可以通过css在归档文件中定义标题图像区域来实现这一点。php并在您的样式中设置背景图像。css

或者您可以使用插件动态标题http://wordpress.org/extend/plugins/dynamic-headers/(虽然自2010年以来一直没有更新,但效果很好)

SO网友:Michelle

关于这一点,我的时间很晚,但我相信这个插件解决了最初的问题:http://wordpress.org/plugins/categories-images/

它允许管理员在分类法编辑面板上为特定类别/标记/分类法选择“特色图像”。然后可以在主题的存档中使用它。php(例如)通过回声z_taxonomy_image_url();.

如果您想自己动手,可以查看该插件中的代码作为起点。

SO网友:T.Todua

我认为你应该使用手动方法,比如:

1) 进入每个caregoty“EDIT”页面,在“description”中,放置如下位置:

[image url="https://upload.wikimedia.org/wikipedia/commons/0/0c/Bunker_in_Albanian_Alps.jpg"]
2)获取类别的图像:

if (is_archive())   {
    if (!empty($GLOBALS[\'wp_query\']->queried_object->description) )  { 
        $cat_description =$GLOBALS[\'wp_query\']->queried_object->description); 
            //p.s. from other pages, you can get category description by:  get_term(\'1533\' , \'category\')->description;  
        preg_match(\'/url\\=\\"(.*?)\\"/si\', $cat_description, $new);
        if(!empty($new[1])) {
            $found_image= $new[1];
        }
    }
}
现在,您可以在任何地方使用该图像head 或在第页中。。。

结束

相关推荐

Wordpress Child Themes

我试图在wordpress子主题中重新声明父主题已经在使用的函数。但是,在尝试执行此操作时,我收到一条“致命错误:无法重新声明”消息。此外,我尝试使用以下方法,但没有成功:if (!function_exists(\'jr_load_scripts\')) { // do fancy things here... } 这是the link 如果您想快速查看。。。EDIT: 以下是完整代码:if (!function_exists(\'jr_load_scripts\')) {