沧州高端网站设计:如何向WordPress主题添加条件逻辑

2019.06.12 沧州高端网站设计

137

使用WordPress构建一个网站,在设计和功能方面都提供了很大的灵活性。当你深入到主题发展,您会发现,有时需要针对特定的页面、类别或帖子类型进行特殊设置。这就是条件逻辑可以使你的工作变得容易得多的地方。

条件逻辑是编程语言的一个强大特性(在我们的例子中,PHP)。本质上,这意味着我们可以使用代码来检查某个条件是否存在,然后在满足该条件时执行一些特定的操作。这方面的一个简单例子是检查用户当前是否在我们网站的主页上。使用条件逻辑,我们可以选择在这种情况下加载滑块或其他特殊内容。

关于WordPress,有一些有用的条件标签内置于允许我们测试各种场景的软件中。它们都有详细的文档,并允许您为您的站点带来更高层次的功能。

今天,我们将查看一些更常用的条件标记,以及如何将它们实现到您自己的站点中。

关于使用吊牌的注记
条件标记是PHP代码的一部分,应该进入站点的活动状态主题..在主题中有很多地方可以使用条件逻辑。如果您还没有这样做,那么让自己熟悉WordPress是个好主意。模板层次有关主题文件工作方式的说明。

而且,在尝试在活动站点上实现新代码之前,最好先设置一个开发(暂存)环境来测试。请记住,PHP的一个错误举动可能会给您的站点带来可怕的“死亡的白屏幕”。因此,在现场工作之前,在测试中要非常小心。

is_home()

这一项在开发人员中造成了极大的混乱。通过查看标签,你会认为is_home()将用于检查您网站的主页。事实并非如此。

它实际上查找指定为您的POST页面的页面,该页面设置在WordPress仪表板内的Settings>ReadintheWordPress仪表板中。默认情况下,WordPress使用主页列出帖子,但大多数网站倾向于使用静态主页相反。

因此,例如,如果您指定了一个名为“blog”的页面作为您的帖子页面,这就是is_home()会去找。

<?php// If this the Posts page, display a message.if ( is_home() ): echo '<h2>Thanks for visiting our blog!</h2>';endif;?>

is_head_page()

相反,is_front_page()查找任何设置为您网站主页的页面-不管它是否是静态的。诚然,当你学习创造自己的主题时,这并不是世界上最明显的事情。但是知道使用哪个标签是至关重要的。

这个特定标签的好处是,即使您稍后将一个不同的页面指定为您的主页,您仍然可以选择正确的位置。有更明确的方法来锁定页面,但在发生更改时,这一方法将保持覆盖范围。

<?php// If this is the home page, show a special message.if ( is_front_page() ) { ?><h1>Welcome</h1><?php 
// Otherwise, show the page title.} else { ?><?php the_title( '<h1 class="entry-title">', '</h1>' ); ?><?php } ?>

是单()is_page()

这些标签中的每一个都具有双重功能。is_single()查看当前URL是否为POST。它可以是一个标准的博客帖子,附件或属于自定义的帖子类型。同样,is_page()如果当前URL是页,则返回true。默认情况下,这两个标记都针对属于页面或帖子范围内的任何内容。这是许多条件标记中的一个公共线程。

<?php// Target all posts.if ( is_single() ):echo 'You are on a single post.';endif;// Target all pages.if ( is_page() ): echo 'This is a page';endif; ?>

但是,您也可以通过添加ID或段塞来利用这些标记来针对特定的帖子或页面。

<?php// Target About Usif ( is_page( 'about-us' ) ): ?><a href="#"></a><?php endif; ?>

使用数组将允许您以多个内容块为目标。

<?php// Target About Us and Contact Us pages.if ( is_page( array('about-us', 'contact-us') ) ): ?><a href="#"></a><?php endif; ?>

是税()有项()

分类法在网站内容的组织方式中起着很大的作用。最常见的两个是类别标签-它们有自己的条件标签。但WordPress也使我们能够创建自己的分类法。例如,如果您的站点包含音乐评论,您可能有一个名为“类别”的分类法。在那里,您可以在分类法中列出特定的音乐类型,如“摇滚”、“Hip-Hop”和“Jazz”。

is_tax()目标是分类法存档页面。继续使用我们的音乐评论示例,当我们在每个特定类型的存档页面上时,这个标记会触发(进入生效)。

<?php// Display a message on our Genre archive pages.if (is_tax('genre','rock','hip-hop','jazz') ):echo '<h2>This is a genre archive. Enjoy!</h2>';endif; ?>

has_term()用于针对当前的帖子,根据其所属的分类法。这是有用的,例如,我们想要添加一个特殊的图形,在每个类型的音乐在我们的网站上的帖子。

<?php// Show an image for the Rock genre.if (has_term('rock','genre') ): ?><?php endif; ?>

is_page模板()

一旦您熟悉了主题的模板层次结构,您可能需要创建自己的自定义页面模板. is_page_template()允许您针对正在使用的当前页面模板(不管它是否是自定义的)。您可以检查是否正在使用任何页面模板,也可以查找特定的模板。

但是,在寻找特定的页面模板时,您必须小心。由于此标记检查文件名是否存在,如果更改该模板的名称,条件可能停止工作。您必须更新代码以反映任何文件名更改。

<?php// Add a search form to the Services page template.if (is_page_template('services.php') ):?><?php get_search_form(); ?><?php endif; ?>

所有条件

虽然这只是对如何使用条件逻辑的一个简要介绍,但希望它能激发您学习更多知识的欲望。一旦你掌握了条件,你将能够定制你的网站的方式,几乎是不可能的,否则。他们可以给你精细的谷物控制的外观和布局的主题,同时仍然受益于利用CMS的所有优势。


最新案例

寒枫总监

来电咨询

18868949445

微信咨询

寒枫总监

TOP