最近又在折腾自己的玩博客导航,遇到了一个问题,想在主题设置的某个位置专门来显示作者网站里某个分类下的文章;或者我们想在一个网站里调用另外一个 Wot z \ @rdPress 网站内的文章,在网上找了很多方法,好多都是两个站点都是 WordPress 程序的调用教程,折腾了好多方Y X S / ( ~ ~ _法,找到一个] F B d } D s )可用的插件,通过 Ec; S z * 1 d \all 插件外部调用实现了我想要的效果。但是安装插件不太喜欢,所以就放弃了- w ] P F K f。后来又找到另一种u c X u实现的方法如下:
1、在被调用 WordPress 网站的根目录中建立一个 PHP 文件,并添加以下代码:? M i X T J [
- <?php
- define('WP_USE_THEMES', false);
- require('./wp-lo@ 8 oad.php');
- que i ]ery_posts('showposts=1');
- ?&g/ D D 6 F : h *t;
- <n L H Q b 6 ~ ^?php while (have_posts()&n P $ ! ##W Q Z41;: the_post(6 p 9 R K G41;; ?s | % s 3 I>
- <li><a href="<?php the_permalink(); ?&gW 0 {t;"! z 2 s a - ( $ \ target="_blank"><?php echo mb_strimwidth(str& { D X 4ip_tags(apply_filters('the_title', $postC m r-&gl 8 ot;post_( s @ l R 1 z } etitle)), 0, 50," "); ?></a></li>
- <?php endwhiv L 2 @ ! Zle; ?>
其中 query_posts()里面的参v D 7 $ X z数可自行修改,如显{ v A q 2 \示的文章数、是否显示置顶文章、是否显示多种类型的文章等。循环主题中的样式也建议根据自己的站点情况调整。
2、在需要调用的地方,如文章页或侧边栏(需要支持 PHP),添加以下代码:
- <?php
- $url="https://网站域名/call.php";
- echo file_get_conT 9 ^ 9 g : # o \tents( $uG 3 A ) K j G W vrl );
- ?>
其中记得修改以上网站域名为自己站点的完整域名。
根据以上方法添加到懿古今首页的侧边栏时总是出现“failed to open stream: HTTP request failed- c : S! ”错误提示,具体如下:
- Warning: file_get| \ . g {_contents(https://网站域名/call.php): failed to open stre, R P j P ) Kam: HTTP requesu g g kt failed! HTTP/1.1 403 Forbidden in 目标文件路径 on line 25
网上搜索了半天发现很多教程都说要修改 PHP.ini,把 allow_url_fopen 给启用,改成 allow_urL Q & t Xl_fopen = On 之类的。后来在 CSDN 博客中的『完美解决 failed to open stream: HTTP reX f ) Y ] \ squest failed!(file_get_contents 引起的)』这篇文章找到完美解决办法。只需要将第二步中的代码改为:
- <?php
- ini_set("user_agent","Mozilla/4.0 (compatible; MSIE 5.00; Windows 98)");
- $url="https://网站域名/call.php";
- echo file_get_contents( $url );
- ?>r w M \;
最终成功在懿古今首页展示最新更新的文章(包括 post 文章类型和自定义文章类型)。