今天在做一个站的时候需要对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()).'>&laquo; Previous Entry</a> ';
if($paged<$wp_query->max_num_pages)
echo ' <a href='.str_replace($loca,'',get_next_posts_page_link()).'>Next Entry &raquo;</a>';
?>
</p>
<!--导航结束-->

PS:这个方法只能用在同一个站点下,不同域名,也就是跨站的情况下,是不能使用这个方法的,如果跨站的话还是只能使用javascript方式调用。JS调用可以采用Feed to JS来实现。

转载请注明:摩登坊 » 非WordPress目录调用最新文章列表或摘要方法(解决永久链接问题)

继续查看有关 的文章

6访客评论 ,博主回复3

  1. 谢谢分享…我也遇到类似问题的.从GG搜过来的…

    rexsky08-21 13:41
  2. 正在找这个方面的信息,谢谢了!

    淡如菊03-04 22:03
  3. 如何增加外链,我的外链1400,如何加到5000,大家是手动加的吗,一个站一个站家的吗,太花时间了

    mysuperwoofer07-20 09:01
  4. 写优质文章,转载的扩散速度是非常快的。外链也不是越多越好,个人认为质量为主。

    Steve Luo07-21 20:50
  5. 我想在wordpress中调用DZ论坛中帖子,不知道好不好用

    丰胸方法08-29 00:28
  6. 多谢分享,GG过来的

    亿品元素09-02 09:13
  7. 这个应该问题不大,DZ帖子不是JS调用就可以了嘛?

    Steve Luo10-12 16:55
  8. 您好,采用JS调用与这种方法调用,那种更适合SEO啊

    淘宝数据04-26 06:26
  9. 其实现在搜索引擎能够识别一定程度的JS了,但是为了保险起见,还是推荐用HTML直接输出,如果你有试验精神的话可以考虑尝试一下JS呵呵

    Steve Luo06-08 21:25

我来说说

*

*

取消