A-A+
wordpress自定义对象声明到全局变量中
wordpress是一个神奇又伟大的博客系统,wordpress 也内置了许多神奇的函数,最近的研究中,偶尔接触到 wordpress 中setup_postdata 函数,此函数绝对称得上是神奇,因为它可以将我们自定义的函数或者是对象变量声明到全局的 $post 变量中,这样我们就可以像在主循环中为所欲为的使用模板标签了,这样一来,再去测试模板主题就变得方便多了。
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); ?> <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li><?php endforeach;//重置 算是setup_postdata( )的反函数 wp_reset_postdata();?> </ul>
这样看起来是不是就更能够理解了,另外在使用本函数的时候,不要在主循环中进行使用,不然不会达到预期的效果,上面的实例主要是 foreach( $myposts as $post ) :setup_postdata($post); 这一句,$myposts 是定义的 array 数组,然后再使用 setup_postdate 再将其声明到全局变量中进行使用。
使用本函数完全可以在模板中制作侧边栏的最新文章,随机日志等功能。
像这样的文章对于我来说就像对年弹琴一样,不过对于别人来说却是受益匪浅,哎,果然是那句“傻得令人心碎呀”!
都是使用 WP的一些心得而已。