根据类别更改每个帖子的背景

时间:2014-07-04 作者:Ankit

我用的是胡曼主题。我想做的是,所有帖子的背景都应该根据帖子的类别而改变。

请提出一些建议

2 个回复
SO网友:rellampec

我不知道这个主题。但您必须在某个地方使用这两个函数:

 get_theme_mod (\'background_image\', $default);
 set_theme_mod (\'background_image\', $_category_image_absolute_path);
也许,您可以使用此函数定义新的修改名称。例如,“background\\u image\\u entertainment”、“background\\u image\\u storysode”等(如参考网页所示),使用set\\u theme\\u mod。

set_theme_mod (\'backround_image_entertainment\', $_category_image_absolute_path);
然后,您应该添加一些函数来引入每个图像的绝对路径,使用set_theme_mod; 最近调用函数get_theme_mod 根据当前类别。此代码可能很有用(无论您是否了解如何调整:

function get_background_image_modified () {
   $category = get_the_category();
    // Here it could be added some checking like:
    // * Are we showing all posts of one category?
    // * Are we in a post?
    // * Are we showing by tags?
    // * Are we in the main page?
    // and add more options
   $cat_name = $category[0]->cat_name; // the category of the first post of the list
   $url_default_image = get_theme_mod (\'background_image\', $aux);
   $url_cat_image = get_theme_mod (\'background_image_\'.$cat_name, $aux);

 return (isset($url_cat_image))? $url_cat_image : $url_dafault_image);
}
然后,您需要找到主题中的原始get\\u background\\u image()的位置,或者定义的位置,并包含您的更改。如果函数不存在,则创建它,并使用WordPress API替换函数来替换主函数。我从来没有做过,但这是可能的。

最后,您需要以某种方式命名每个类别的背景图像文件(例如:background entertainment.jpg),并在某处使用set\\u theme\\u mod包含每个类别的绝对路径(在主题加载的最开始)。

我正在用另一个主题进行研究,但我还没有弄清楚每一件事。制作插件(现在还不存在)很容易。不幸的是,每个主题都是以不同的方式开发的,并且没有一个标准的方案来替代这样的功能。

如果有人得到了最终的解决方案,请放心分享。谢谢

SO网友:turtledropbomb

Wordpress通常将类别作为类添加到每个页面的正文/文章标记中,您可能可以通过该类使用自定义背景设置每个类别的样式。

结束

相关推荐

QUERY_POSTS按多种方式排序

我对query\\u posts orderby multiple ways有问题。我在Wordpress中有一个类别,在那里我需要显示具有排名的第一个帖子,然后按标题显示所有帖子。下面是工作代码,工作正常,但不知道如何连接这些代码。这段代码只显示排名靠前的帖子 query_posts(array(\'cat\' => $category->term_id, \'posts_per_page\' => -1, \'orderby\' => \'meta_value\', \'me