Aug
03
今天在做一个站的时候需要对Wordpress的文章进行调用,也就是在Wordpress以外环境,例如wordpress安装在/blog/目录下,而根目录下的index.php需要调用博客最新文章。
很高兴在关于非WP目录下的.php文件显示文章摘要或者别的WP信息的方法一文中找到了实现方法,也很容易上手,放在一个空白的测试页中运行成功。
不过当我把Wordpress的永久链接(Permalink)形式从默认改成了任何伪静态形式,文章列表调用就失效了,显示空白。
后来查阅Wordpress支持论坛,似乎也有人遇到过由于更改了默认的永久链接设置而造成列表调用失败的问题,不过作者似乎自己解决了该问题。问题主要可能是出现在将Wordpress安装在子目录下,如/blog/,而在永久链接设置的地方是不需要指定目录的。然而在自行外部调用的时候就出现了问题,这个可能是Wordpress设计上的一个BUG吧。
我尝试了一下加上了目录的路径,/blog/%postname%/,这样设置以后列表调用成功显示内容,只不过,在Wordpress中的所有永久链接地址就出现了2次/blog/,不过这个却不影响使用,只是不好看而已。囧
由于我也是第一次接触wordpress的开发,所以并不是很熟悉那些函数接口,在查阅了手册之后发现可以使用自定义的查询方式,使用query_posts来调用,结果使用了这个方法以后,问题解决。
具体代码如下:
<?php
$loca="/blog";//这里定义你的WP目录
require_once( dirname(__FILE__) . $loca.'/wp-load.php' );//注意这里是wp目录下的wp-load.php
wp();//这样wp的加载就完成了,我们不需要加载模板。
?>
<?php
query_posts('showposts=3'); //就是这里加了一句query_posts,这样也可以实现调用条数的指定。
while (have_posts()) : the_post();
?><div>
<?php the_excerpt();?>
</div>
<?php endwhile; ?>
<!--导航开始-->
<p align="center">
<?php
global $paged, $wp_query;
if($paged>1)
echo '<a href='.str_replace($loca,'',get_previous_posts_page_link()).'>« Previous Entry</a> ';
if($paged<$wp_query->max_num_pages)
echo ' <a href='.str_replace($loca,'',get_next_posts_page_link()).'>Next Entry »</a>';
?>
</p>
<!--导航结束-->
PS:这个方法只能用在同一个站点下,不同域名,也就是跨站的情况下,是不能使用这个方法的,如果跨站的话还是只能使用javascript方式调用。JS调用可以采用Feed to JS来实现。
欢迎转载,务必请记得保留出处,否则就如看帖不回帖一样,是不道德的!
本文地址:http://www.steveluo.name/wordpress-call-posts-excerpts-list-permalink-fixed/
本文地址:http://www.steveluo.name/wordpress-call-posts-excerpts-list-permalink-fixed/
您可能还对这些文章感兴趣:
12 Comments
Make A CommentComments RSS Feed TrackBack URL
August 21st, 2009 at 1:41 pm
谢谢分享…我也遇到类似问题的.从GG搜过来的…
[Reply]
December 1st, 2009 at 3:21 am
[...] PS:这个方法只能用在同一个站点下,不同域名,也就是跨站的情况下,是不能使用这个方法的,如果跨站的话还是只能使用javascript方式调用。JS调用可以采用Feed to JS来实现。 本文来自: Steve Luo’s Blog 原文地址:http://www.steveluo.name/wordpress-call-posts-excerpts-list-permalink-fixed/ [...]
March 4th, 2010 at 10:03 pm
正在找这个方面的信息,谢谢了!
[Reply]
July 20th, 2010 at 9:01 am
如何增加外链,我的外链1400,如何加到5000,大家是手动加的吗,一个站一个站家的吗,太花时间了
[Reply]
Steve Luo Reply:
July 21st, 2010 at 8:50 pm
写优质文章,转载的扩散速度是非常快的。外链也不是越多越好,个人认为质量为主。
[Reply]
August 29th, 2010 at 12:28 am
我想在wordpress中调用DZ论坛中帖子,不知道好不好用
[Reply]
Steve Luo Reply:
October 12th, 2010 at 4:55 pm
这个应该问题不大,DZ帖子不是JS调用就可以了嘛?
[Reply]
September 2nd, 2010 at 9:13 am
多谢分享,GG过来的
[Reply]
October 7th, 2010 at 2:13 pm
[...] 非WordPress目录调用最新文章列表或摘要方法(解决永久链接问题 … 2010年8月3日 … 问题主要可能是出现在将WordPress安装在子目录下,如/blog/,而在永久链接设置的地方是不需要指定目录的。然而在自行外部调用的时候就出现了问题, … http://www.steveluo.name/wordpress-call-posts-excerpts-list-permalink-fixed/ – 网页快照 – 类似结果 [...]
October 26th, 2010 at 6:02 pm
[...] 本文来自: Steve Luo’s Blog 原文地址:http://www.steveluo.name/wordpress-call-posts-excerpts-list-permalink-fixed/ [...]
April 26th, 2011 at 6:26 am
您好,采用JS调用与这种方法调用,那种更适合SEO啊
[Reply]
Steve Luo Reply:
June 8th, 2011 at 9:25 pm
其实现在搜索引擎能够识别一定程度的JS了,但是为了保险起见,还是推荐用HTML直接输出,如果你有试验精神的话可以考虑尝试一下JS呵呵
[Reply]