- WordPress检查一篇文章是否存在的方法WordPress 两种方法 检查一篇文章是否存在,两个方法都需要先获取文章的id: 方法一:通过 get_permalink() 检测文章是否存在 if(get_permalink($post_id) === false){ // 文章不存在后执行操作 } 方法二:通...
- WordPress添加注册和登录用户名黑名单WordPress添加注册和登录用户名黑名单实现代码(将下面代码加入主题的functions.php): //注册登录检查 function dmeng_check_authentication($username){ //用 | 分割用户名,且 | 前...
- wordpress网站外链跳转页面代码wordpress网站外链跳转页面代码分PHP版和IS版,支持跳转加密。 PHP版<?php if(strlen($_SERVER['REQUEST_URI']) > 384 || strpos($_SERVER['REQUEST_URI'], "eval(") || strpos($_SERVER['REQU...
- 更改WordPress管理员的ID更改WordPress管理员的ID也需要动到phpMyAdmin数据库,所以修改前,请务必备份。 同时,在更改WordPress管理员帐户ID之前,请确保管理员帐户没有任何分配给它的帖子或页面。如果有,请将这些帖子或页面的作者手动...
- 找回WordPress管理员密码wordpress用户及管理员信息都是在phpMyAdmin保存着的,如果忘记WordPress管理员密码密码,只要按下面的操作即可找回WordPress管理员密码。 首先登录你的 phpMyAdmin 数据库,展开安装WordPress的数据库名称,找到...
- WordPress 获取当前页面 ID 的几种方法在很多的 WordPress 主题或者插件功能的开发中,我们总是需要获取到 WordPress 给每个页面定义的 ID,不然也某些情况下是无法确定这是哪一个页面,针对于文章或者页面的 ID 获取基本可以使用 get_the_ID()这个函...
- 禁止WordPress自动保存和修订版本方法 支持4.9+禁止WordPress自动保存和修订版本方法,将以下两段代码放入主题模板文件functions.php即可。//禁用文章自动保存 add_action('wp_print_scripts','disable_autosave'); function disable_autosave(){ wp_deregist...
- 修正WordPress 设置伪静态后文章分页链接我们通常将WordPress固定链接设为/%postname%.html或者/%post_id%.html,可以让页面看起来像静态页,但当文章有分页时,分页链接会变得奇怪,比如: /morning-paper-news.html/3 /132.html/2 html既然是后缀就应...
setup_postdata函数显示最新文章或者随机文章
setup_postdata 函数是 WordPress 中一个比较神奇的函数,能将对象变量声明到全局的$post
变量中,这样我们就可以像在主循环中为所欲为的使用模板标签了。
说这么多都只是空谈,setup_postdata这个函数平时我们很少用到,以至于目前为止我还没找到一个中文的介绍文章。
只是在其他文章中能找到只字片语,但因为确实很实用,所以就单独行文,备忘之。
setup_postdata 函数描述
英文版的我就不放了,
我的解释是:
将我们自定义查询的文章对象声明到全局$post
变量中,以便我们使用模板标签。
这里的查询变量我们需要从get_post()或是get_posts查询获得,当然只要是标准的文章对象,你都可以用setup_postdata来声明到全局去,不仅限于这两个函数。
使用
<?php //获取全局变量, global $post; setup_postdata( $post ); ?>
官方的例子就是这么坑爹。
来一个复杂点的:
<ul> <?php //定义查询条件 $args = array( 'numberposts' => 5, 'offset'=> 1, 'category' => 1 ); //获得查询文章(多篇) $myposts = get_posts( $args ); //遍历文章数组 foreach( $myposts as $post ) : setup_postdata($post); ?> setup_postdata( $post ); <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li> <?php endforeach; //重置 算是setup_postdata( )的反函数 wp_reset_postdata(); ?> </ul>
这样是不是就清晰多了?
再来一个例子吧,以下的例子源自 我目前用的主题的边栏的随机/最新 文章显示模块
function dw_side_post($i=3){ global $post; $mylist = ''; $mytitle = is_single() ? '最新文章':'随机推荐'; $posts = is_single() ? get_posts("numberposts={$i}&orderby=post_date"):get_posts("numberposts={$i}&orderby=rand"); foreach($posts as $post) { setup_postdata($post); $mylist .= '<li><a href="' . get_permalink() . '">' . get_the_title() . '</a></li>'; } $output = '<div class="widget"><div class="title">'.$mytitle.'</div><ul>'.$mylist.'</ul></div>'; echo $output; }
注意
使用本函数的时候,请注意不要在主循环中使用,不然会达不到你预期的效果,
怎样退出循环,这个你可以在调用该函数不成功的时候去搜搜。
资料来源:http://pangbu.com/setup_postdata/