自定义体类

使用论文自定义主体类来打破设计障碍

T可以实现的自定义级别论文这个主题只受你的想象力的限制。Thesis提供的最佳工具之一是向任何页面或页面组的body标记添加自定义类的能力。无论您是否希望不同页面使用不同的页眉图像,动态网站背景,分类页面上的不同配色方案,或者任何其他动态亚博体育下载css任务,自定义主体类可以迎接挑战!

为什么使用自定义主体类?

使用自定义body类的主要原因是区分某些post,页,或者你网站的其他部分。使用特殊格式的功能允许您向访问者清楚地说明哪些内容是重要的,或者以某种方式与网站的其他部分分离。这不是一件应该做得过分的事情,但如果使用得当,它可以增加页面视图,请给你更多的订户,提高转化率!

自定义实体类如何工作?

要开始,body标签包含作为网站内容显示的所有html。假设您选择使用“论文站点选项”面板中的“自定义样式表”,论文自动添加一个“自定义”类到您的身体标签网站范围。这就是你添加的原因.custom到您所使用的每一行css代码的开头自定义.css

添加额外的论文主体类基本上与标准的“自定义”类工作相同。开始的时候你有两个选择;您可以使用单个post(或page)选项添加自定义的body类,也可以使用论文过滤器将类分配给一组页面,一个特定的类别,或者你网站上任何亚博体育下载你能想到的特定区域。

一旦你添加了类,现在可以添加仅适用于已添加的自定义主体类的CSS。我们马上就会讲到。现在,让我们来讨论一下添加自亚博体育下载定义主体类!

指定自定义主体类

如上所述,有两种方法可以向特定页面或一组页面添加额外的正文类。

首先,你可以使用论文“CSS类”的post选项。你可以在你的WordPress管理员的编辑页面上找到它。亚博yabo88app 下载它是这样的:

(post_image)

您所需要做的就是在提供的空间中输入新的body类,然后就完成了!您只是将类添加到了特定的页面。我不建议在大的页面组中使用这个,因为为每一篇文章或每一页这样做会变得很乏味。最终你肯定会偶尔忘记添加类,这导致了设计上的不一致,看起来很马虎,分散了读者的注意力。

处理页面组的自定义正文类的第二种也是最好的方法是使用thesis_body_classes过滤。听起来很可怕,但其实很简单。代码如下:

函数custom_body_class($classes)$classes[]=您的_new_class';返回$classes;添加_filter('thesis_body_classes','custom_body_class');

我们在这里做了四件事:

  1. 设置一个名为自定义\正文\类并通过了美元的类通过参数来定义
  2. 定义美元的类作为新类的名称(在本例中,你的新课程
  3. 返回美元的类这样类就会出现在我们的HTML中
  4. 使用添加过滤器将新功能添加到thesis_body_classes过滤器

现在,上面的过滤器不包含任何条件,所以这个函数会将新类添加到整个博客中。

现在假设我们只想将它添加到博客的特定区域。在本教程中,让我们将其添加到类别页面。为了做到这一点,我们加上亚博yabo88app 下载WordPress条件他说:“这是一个很好的选择。”is_category()”,这样,筛选器只适用于类别页:

函数custom_body_class($classes)if(is_category())$classes[]=您的_new_class';返回$classes;添加_filter('thesis_body_classes','custom_body_class');

得到具体的

有许多方法可以使用自定义类针对页面组。让我们来看几个例子!

亚博yabo88app 下载WordPress条件标记

如上所示WordPress是内亚博yabo88app 下载置的条件标签。这些标记可用于在日志的特定部分显示内容。例如,这个is_category()在上面的示例中,仅针对类别页面使用。下面是另一个使用条件标记的示例:

函数custom_body_class($classes)if(is_single())$classes[]=您的_new_class';返回$classes;添加_filter('thesis_body_classes','custom_body_class');

在这里,我们正在使用is_single()。这将只对包含单个日志的页应用筛选器,就像你现在看到的那个。

有很多条件标签可供选择。其他几个值得注意的是是第()页,请是\u tag(),请是日期()。,请is_404(),请is_search(),请和是“家”()

高级示例

带自定义域的日志

亚博yabo88app 下载WordPress允许您为单个帖子创建自定义字段。当你定制博客的外观和感觉时,这会给你额外的自由。例如,Blogging.com网站上的许多帖子都包含了该帖中所使用图片的所有者的姓名。它们由两个自定义字段控制。

轻踏,温柔的读者。这些例子相当复杂,可能不是因为编码受损。讲得慢一些。我会尽可能详细,以确保这是相对容易理解的。

让我们编写一个条件,只针对使用这两个定制字段的post。代码如下:

函数custom_body_class($classes)global$post;$credit_name=get_post_custom_values(“photo_credit_name”);$credit_url=get_post_custom_values(“photo_credit_url”);if(isset($credit_name[0])&&isset($credit_url[0])$classes[]='您的_new_class';返回$classes;添加_filter(“论文_body_classes”,'custom_body_class');

这是我们刚刚做的:

  1. 打电话全球$post;。这样可以确保WordPress能够访亚博yabo88app 下载问帖子的信息,从而确定是否有这两个自定义字段用于特定帖子。
  2. 使用获取“发布”自定义值()。为了找出我们要查找的两个自定义字段的值。
  3. 要替换的定义变量获取“发布”自定义值()。两个自定义字段。这将显著清除条件代码。
  4. 条件写为if(isset($credit_name[0])和isset($credit_url[0]))ISSET()。是一个PHP函数,用于确定元素是否存在并具有值。&&指定这两个$贷方名称$credit\u网址必须存在并具有值才能满足条件。[0]是否存在是因为我们需要确保在存在多个自定义值的情况下返回第一个自定义值。
  5. 使用添加过滤器的函数thesis_body_classes过滤器

基本上,这将对所有已为上述两个自定义字段确定值的日志应用该函数。

页面系列

亚博yabo88app 下载WordPress还提供了创建其他页面的“子页面”或“子页面”的功能。一个问题是没有专门针对子页面的条件标记。为了目标页族,我们需要创建一个函数,使我们能够以这些页面为目标。代码如下:

我不打算详细介绍这个函数的内部工作原理,因为它超出了本文的范围。然而,如果将此函数复制并粘贴到custom_functions.php中,您将能够在我们将要使用的目标页族函数中将其作为条件引用。亚博体育下载

函数为_tree($pid)global$post;$anc=get_post_祖先($post->id);foreach($anc as$ancestor)if(is_page()&&&$ancestor==pid)return true;if(is_page()&&(is_page($pid))return true;else return false;

基本上使用是树()。我们只需要使用如果(is_tree(“父页面ID”))。所以,要针对特定的页面及其子页面,您可以使用这个(假设父页面ID为341):

函数自定义_body_class($classes)if(is_tree('341'))$classes[] = '您的_new_class';返回$classes;添加_filter('thesis_body_classes','custom_body_class');

记住,此代码仅适用于父级和子级的一个级别。如果任何子页面有子页面,您需要将其ID添加到是树()。以便过滤器适用于它。不幸的是,是树()。不能很好地处理数组,因此需要添加一个单独的迭代是树()。为每个需要插入ID的页添加条件。这绝对是一种老套的做事方式,但是Wo亚博yabo88app 下载rdPress(令人费解的)在这一点上并没有给我们提供更好的选择。

别忘了时尚!

现在您已经添加了一个定制的body类,它专门针对您想要针对的任何页面或页面组,让我们使用自定义body类添加一些样式。我们将在网站背景中添加黑色背景。为了做到这一点,我们使用.your_new_class代替.custom。您设置的新类将覆盖并显示在.custom您已经为同一个元素编写了。

body.your_new_class_background:000000;}

我们还将链接颜色更改为红色:

.your_new_class a {color: #DD0000;}

可以使用新类以HTML中的任何元素为目标。你所需要做的就是更换正常的.custom具有.your_new_class正如我们在这里所做的。

就这些了。现在您可以根据自己的需要进行定制。你只是被你的想象力所限制!

Adam有十年的WordPress设计经验,亚博yabo88app 下载ArtofBlog (Blogging.com的前身)的开发者和原始贡献者之一