wordpress常用判断函数|wordpress判断用户是否已经登陆
编辑整理:整理来源:优酷,浏览量:47,时间:2023-03-18 08:30:02
前沿:wordpress常用判断函数
补充知识:
wordpress置顶文章的设置在发布文章时有选项,这个很简单,不懂自己go其读粉吸板境世省包且究ogle之,最难的方法是如何在模板里把置顶文章按一定格式输出,这就是本篇文章我们要讨论的内容。
wordpress置顶文章重点函数
关于置顶文章wordpress有两个常用的函数
is_sticky():判断文章是否是置顶的,是配就返回true,不是就返回false 茶几术免get_option('sticky_posts'): 获取置顶文章ID,返回包含各置顶文章ID的数组
对于这两个函数怎么使用下面给出两个具体例子
置顶文章例子1:
首页展示文章时,如果是置顶文章就全文输出
方法简介:在loop循环时,通过 is_sticky()判断是否是置顶即响宽子然控限文章
是的话就设置全局变量$more=1;然后调用the_content(具山);就是全文输出了
会杨获界罪资列另植 否则不是置顶文章的话就设置全局变量$more=0;然后调用the_content('更多...');就是截木四好轻环由婷取<--more-->标签后的输出
<?php if (have_posts()) : ?> <p>分章列表如下</p> <ul> <?php while (have_posts()) : the_post(); if (is_sticky()): global $more; // 设置全局变量$more $more = 车门晶师科或地运品1; ?> <li> <h2>[置顶]<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" rel="bo战拉随玉太置okmark"><?php the_title(); ?></a><h2/> <p><?php the_co国盐觉建注划穿取支ntent(); 团预吸跑?></p> </li> <?php else: global $more; $more = 0; ?> <li> <h2><a href="<?php the_permalink(); ?>" title="<?php 留施与教持张the_title(); ?>" rel="bookmark"><?ph里余p the_title(); ?></a><h造路系利示坐2/> <p><?php the_content('阅读更多'); ?></p> </li> <?php endif; ?> <?ph步p endwhile; 请抓拉须肥?> </ul> <?php else: ?> <h2>没有找到相应文章</h2> <?php endif; ?>
置顶文章例子2:
一次性把置顶文章全部找出来,然后用列表的方法呈现
方法简介:通过换重群绿钟石get_option('sticky_posts')函数把置顶文章id全部找出来,再通过query_posts()函数对这部分id的文章循环列表输出
<ul> <?php $sticky = get_option('sticky_posts'); rsort( $sticky );//对数组逆守品向排序,即大ID在前 $sticky = array_slice( $sticky, 0, 5);//输出置顶文章数,请修改5,0不要动,如果需要全部置顶文章输出,可以把这句注释掉 query_posts( array( 'post__in' => $sticky, 'caller_get_posts' => 1 ) ); if (have_posts()) :while (have_posts()) : the_post(); ?> <li><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" rel="bookmark"><?php the_title(); ?></a></li> <?php endwhile; endif; ?> </ul>
get_term_by()函数主要用来快速查找某一个分类的名称、别名和id的值,只要提供别名、名称或编号其中一个,就可以获取它其余的信息,省时省力又精确。
语法结构
<?php get_term_by( $field, $value, $taxonomy, $output, $filter ) ?>
参数
前3个参数为必须值$field——id、slug、name$value—-$field的值$taxonomy—-自定义分类方式的名称
实例
比如我自建了一个products的分类
根据分类名称获取分类名称值为Theme的别名
<?php
$item = get_term_by('name','Theme','products');
echo $item->slug;
?>
根据id获取id值为21的分类的别名
<?php
$item = get_term_by('id','21','products');
echo $item->slug;
?>
根据别名获取别名值为theme的分类名称
<?php
$item = get_term_by('slug','theme','products');
echo $item->name;
?>
根据id获取id值为21的分类的分类名称
<?php
$item = get_term_by('id','21','products');
echo $item->name;
?>
根据别名获取别名值为theme的分类的id
<?php
$item = get_term_by('slug','theme','products');
echo $item->term_id;
?>
根据分类名称获取分类名称值为Theme的分类的id
<?php
$item = get_term_by('name','Theme','products');
echo $item->term_id;
?>
补充拓展:wordpress常用判断函数
wp_title 函数在 WordPress 中是用来显示文章、页面、分类等等等等标题的一个函数,但在首页索引,该函数将不显示任何的东西。该函数在 WordPress 官方主题中一直被使用,但目前很多定制的主题中这个函数总是为忽视。
函数意义详解
wp_title 函数用来显示页面的标题机审给号五倍降微,如在文章页面,则显示文章标题;在分类页面,则显示分类名称,但在首页索引,该函数将不显示任何的东西。
有点像 WordPress 中术附溶长宜侵汽的 get_the烧儿互线雷哥雨款_title 和 single_cat_title()这两个函数的自适应用法(自动判断是页面、文章还是分类、归档、标签)。
函数声明
有点长,希望您能耐心看一遍,哪怕只有术友滑当措孙数着那么一遍。
/** * Display or retrieve page title for all areas of blog. * * By default, the page title will display the separator before the page title, * so tt th指造补欢我更息讲e blog title wil北神清香题陆l be before the page title. This is not good for * title displa点上静简建秋概国业从y, since the blog title shows up on most tabs and not wt is * important, which is the page tt the user is looking at. * * There are also SEO benefits to h把活集些苏又却督类aving the 还盐财电尽末未调河blog title after or to the 'right' * or the page title. However, it is mostly common sense to have the blog title * to the 第急冲洋right with most browsers supporting tabs. You can achieve this by * using the seplocation parameter and setting the value to 'right'. This change * was introduced around 2.5.0, in cas货东端适举市及致移留e backwards compatibility of themes is * important. * * @since 1.0.0 * * @param string $sep Optional, default is '»'. How to separat浓校叫第清田e the various items w足杆干永配些入ithin the page title. * @param bool $display Optional, default is true. Whether to display or r杆伟沉众三问失需免啊etrieve title. * @param string $seplocation Op欢毫怕tional. Directi歌on to display title, 'right吧意举服比原'. * @return string|null String on retrieve, null when displaying. */ function wp_title($sep = '»', $display = true, $seplocation = '') { global $wpdb, $wp_locale; $m = get_query_var('m'); $year = get_query_var('year'); $monthnum = get_query_var('monthnum'); $day = get_query_var('day'); $search = get_query_var('s'); $title = ''; $t_sep = '%WP_TITILE_SEP%'; // Temporary separator, for accurate flipping, if necessary // If there is a post if ( is_single() || ( is_home() && !is_front_page() ) || ( is_page() && !is_front_page() ) ) { $title = single_post_title( '', false ); } // If there's a category or tag if ( is_category() || is_tag() ) { $title = single_term_title( '', false ); } // If there's a taxonomy if ( is_tax() ) { $term = get_queried_object(); $tax = get_taxonomy( $term->taxonomy ); $title = single_term_title( $tax->labels->name . $t_sep, false ); } // If there's an author if ( is_author() ) { $author = get_queried_object(); $title = $author->display_name; } // If there's a post type archive if ( is_post_type_archive() ) $title = post_type_archive_title( '', false ); // If there's a month if ( is_archive() && !empty($m) ) { $my_year = substr($m, 0, 4); $my_month = $wp_locale->get_month(substr($m, 4, 2)); $my_day = intval(substr($m, 6, 2)); $title = $my_year . ( $my_month ? $t_sep . $my_month : '' ) . ( $my_day ? $t_sep . $my_day : '' ); } // If there's a year if ( is_archive() && !empty($year) ) { $title = $year; if ( !empty($monthnum) ) $title .= $t_sep . $wp_locale->get_month($monthnum); if ( !empty($day) ) $title .= $t_sep . zeroise($day, 2); } // If it's a search if ( is_search() ) { /* translators: 1: separator, 2: search phrase */ $title = sprintf(__('Search Results %1$s %2$s'), $t_sep, strip_tags($search)); } // If it's a 404 page if ( is_404() ) { $title = __('Page not found'); } $prefix = ''; if ( !empty($title) ) $prefix = " $sep "; // Determines position of the separator and direction of the breadcrumb if ( 'right' == $seplocation ) { // sep on right, so reverse the order $title_array = explode( $t_sep, $title ); $title_array = array_reverse( $title_array ); $title = implode( " $sep ", $title_array ) . $prefix; } else { $title_array = explode( $t_sep, $title ); $title = $prefix . implode( " $sep ", $title_array ); } $title = apply_filters('wp_title', $title, $sep, $seplocation); // Send it out if ( $display ) echo $title; else return $title; }
用法
<?php wp_title( $sep, $echo, $seplocation ); ?>
参数详解
$sep:分隔符; $echo:是否显示; $seplocation:分隔符所在位置(左还是右,只接受'right',如果不是right自动判定为左)
总结
WordPress 中相同功能的函数有很多,都是从基层到高级不断的经过封装最后到达使用层的,当然如果我们需要一些灵活用法的话,我们可以直接用中间那层的函数,如果我们懒的话我们可以直接使用最高级的那层函数,诸如本函数 wp_title ,其实这个函数我们从源代码来看, wp 替我们针对 分类、标签、文章、归档、作者、页面等多种类型的页面进行了判断,并根据不同页面调用不同的标题函数来达到目的。
如果有时间,您可以对下面几个函数进行深入研究一下,一遍更灵活的进行seo
single_post_title 文章页面提取标题的函数
single_term_title tag(标签)、cat(分类)、日期、提取标题的函数 类似于 single_cat_title()函数
get_queried_object 作者页面提取对象的函数(对象中有作者名)
post_type_archive_title()规档等等提取标题的函数
还等什么?
GO GO GO !
行业热门话题:
【wordpress 常用函数】【wordpress判断用户是否已经登陆】【如何调用wordpress函数】【wordpress 查询功能】【wordpress测试】【wpf判断窗口是否关闭】【wordpress怎么看文章】【wordpress的functionsphp在哪】【wpf 测试】【wordpress 函数】
wordpress常用判断函数|wordpress判断用户是否已经登陆完!