首页 > 网络知识 » 正文

WordPress自带的条件标签使用说明

 87 ℃
WordPress自带的条件标签可以让你依据条件显示不同的内容,比如,你可以检查用户是在首页?是否登陆?

PHP if(语句)
用php的条件语句你可以判断一些事情的真假,如果是真,代码将被执行,否则什么也不发生.看下面的语句,相信你可以理解.

复制代码代码如下:
?php
if(10 == 10):
echo This is true, and will be shown.;
endif;
if(10 == 15):
echo This is false, and will not be shown.;
endif;
?

你同样可以用elseif来增加另一个条件语句,如下:

复制代码代码如下:
?php
if(10 == 11):
echo This is false, and will not be shown.;
elseif(10 == 15):
echo This is false, and will not be shown.;
else:
echo Since none of the above is true, this will be shown.;
endif;
?

以上就是php的条件语句,好了,下面我们进入WordPress的条件标签.

条件标签怎么起作用
使用WordPress自带的函数如is_home(),你可以轻松的询问WordPress当前的用户是否在首页.WordPress将会回答你是或否,即1或0.

复制代码代码如下:
?php
if( is_home() ):
echo User is on the homepage.;
else:
echo User is not on the homepage;
endif;
?

你可以查询更多关于WordPress的codex条件标签列表.

多个条件的混合使用
有时你查询的条件语句不止一个,你可以使用和或或即and与or.

复制代码代码如下:
?php
if( is_home() AND is_page( 5 ) ):
echo User is on the homepage, and the home pages ID is 5;
endif;
if( is_home() OR is_page( 5 )):
echo User is on the homepage or the page where the ID is 5;
endif;
?

什么时候使用条件标签
条件标签非常有用,它可以用来判断用户是否登陆?用户是否使用是ie浏览器?是否有文章显示等等.
看下面的例子:

复制代码代码如下:
?php if ( have_posts() ) : ?
posts
?php else : ?
search field
?php endif; ?

检查是否有文章显示,如果没有,则显示搜索框.
WordPress条件标签的用法举例:

复制代码代码如下:
if( is_admin() ):
# User is administator
endif;
if( is_home() AND is_page(1) ):
# The user is at the home page and the home page is a page with the ID 1
endif;
if( is_single() OR is_page() ):
# The user is reading a post or a page
endif;
if( !is_home() AND is_page() ):
# The user is on a page, but not the homepage
endif;

自定义条件标签
在WordPress的条件标签一览表里面,你可以看到大部分的content或page的条件标签,如果你继续深究的话,你还会发现以下的.

检查用户是否登陆
如果你的博客有很多个作者,下面这个代码可以让你知道用户是否登陆.

复制代码代码如下:
if ( is_user_logged_in() ):
echo Welcome, registered user!;
else:
echo Welcome, visitor!;
endif;

你的网站是否可以注册

复制代码代码如下:
?php if ( get_option(users_can_register):
echo Registrations are open.;
else:
echo Registrations are closed.;
endif;
判断用户使用的电脑是pc或mac
if( stristr($_SERVER['HTTP_USER_AGENT'],mac) ):
echo Hello, Im a Mac.;
else:
echo And Im a PC.;
endif;

用户登陆时,让Google分析代码不起作用
如果在你的网站使用了Google的分析代码,你可能希望去跟踪真正的访问者,而不是作者.不要忘记修改Google的分析id的UA-XXXXXXX-X (如下)

复制代码代码如下:
?php
// function for inserting Google Analytics into the wp_head
add_action(wp_footer, ga);
function ga() {
if ( !is_user_logged_in() ): // f user is not logged in
?
script type=text/javascript
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXXXX-X']); // insert your Google Analytics id here
_gaq.push(['_trackPageview']);
_gaq.push(['_trackPageLoadTime']);
(function() {
var ga = document.createElement(script); ga.type = text/javascript; ga.async = true;
ga.src = (https: == document.location.protocol ? https://ssl : http://www) + .google-analytics.com/ga.js;
var s = document.getElementsByTagName(script)[0]; s.parentNode.insertBefore(ga, s);
})();
/script
?php
endif;
}
?

自定义文章的类型
下面的例子可以让你判断当前的文章是否是特定的文章类型,比如books

复制代码代码如下:
?php if ( is_singular( books ) ):
// This post is of the custom post type books.
endif; ?

当查询结果仅有一篇时直接以单页的方式显示(这个很好,我觉得)
添加以下代码片断到你的主题文件夹的functions.php文件里,它将会自动重定向到当你的搜索结果仅有一篇时以单页方式显示.

复制代码代码如下:
?php
add_action(template_redirect, single_result);
function single_result() {
if (is_search()) {
global $wp_query;
if ($wp_query-post_count == 1) {
wp_redirect( get_permalink( $wp_query-posts['0']-ID ) );
}
}
}
?

检查是否是最后一篇文章
你可能会在你的文章列表里面添加些东西(比如广告或推荐),把以下代码添加到循环内,可以让你在最后一篇文章之前显示出添加的东西。

复制代码代码如下:
?php if( ($wp_query-current_post + 1) ($wp_query-post_count) ): ?
div class=separator/div
?php endif; ?

判断当前的用户可以做什么

复制代码代码如下:
?php
if( current_user_can(editor) ):
// true if user is an editor
endif;
if( !current_user_can(administrator) ):
// true if user is not admin
endif;
if( current_user_can(edit_posts) ):
// true if user can edit posts
endif;
?

除了admin,使别人禁用Tinymce HTML编辑器
把下面的代码添加到functions.php文件里限制只有admin可以使用编辑器

复制代码代码如下:
?php
add_filter( wp_default_editor, create_function(, return tinymce;) );
add_action( admin_head, disable_html_editor_wps );
function disable_html_editor_wps() {
global $current_user;
get_currentuserinfo();
if ($current_user-user_level != 10) {
echo style type=text/css#editor-toolbar #edButtonHTML, #quicktags {display: none;}/style;
}
}
?

你可以把所遇到过的条件标签都整合起来,这些条件标签当你制件主题的时候会很方便,你是否有不同的条件标签,可以拿出来与大家一起分享.
Wordpress(Wp)3.5版修改默认上传图片路径的解决方法
wordpress 如何从后台数据库修改theme(图文教程)