侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

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

框架(架构)  /  管理员 发布于 7年前   2811

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, I’m a Mac.’;
else:
echo ‘And I’m 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主题语言包(汉化主题)
    下一条:
    如何解决WordPress更改新域名后使得网站正常运行
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • Filament v3.1版本发布(0个评论)
    • docker + gitea搭建一个git服务器流程步骤(0个评论)
    • websocket的三种架构方式使用优缺点浅析(0个评论)
    • ubuntu20.4系统中宿主机安装nginx服务,docker容器中安装php8.2实现运行laravel10框架网站(0个评论)
    • phpstudy_pro(小皮面板)中安装最新php8.2.9版本流程步骤(0个评论)
    • 近期文章
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 欧盟关于强迫劳动的规定的官方举报渠道及官方举报网站(0个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf文件功能(0个评论)
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • 在go + gin中gorm实现指定搜索/区间搜索分页列表功能接口实例(0个评论)
    • 在go语言中实现IP/CIDR的ip和netmask互转及IP段形式互转及ip是否存在IP/CIDR(0个评论)
    • PHP 8.4 Alpha 1现已发布!(0个评论)
    • Laravel 11.15版本发布 - Eloquent Builder中添加的泛型(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2018-05
    • 2020-02
    • 2020-03
    • 2020-05
    • 2020-06
    • 2020-07
    • 2020-08
    • 2020-11
    • 2021-03
    • 2021-09
    • 2021-10
    • 2021-11
    • 2022-01
    • 2022-02
    • 2022-03
    • 2022-08
    • 2023-08
    • 2023-10
    • 2023-12
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客