懿古今调用boke112联盟最新文章的折腾过程记录

 懿古今   2022-10-02 12:58:02 更新  技术文档

今天闲着无聊又想折腾点什么,然后就觉得懿古今(www.yigujin.cn)首页主体内容部分显示的就是最新文章,然后侧边栏又显示最新文章,感觉有点重复,就想改为显示其他内容。后来想了想就改显示boke112百科的最新文章吧,算是两个博客网站之间的相互引流吧。

根据 boke112 联盟分享的文章中得知 WordPress 调用其他站点文章的方法有两个,一个是通过插件方式,详见『推荐一款 js 方式外部调用 WordPress 站点文章插件 Ecall』;另一个是通过 feed 方式,详见『WordPress 如何调用其他站点的文章显示在文章页中?』。这次老古是通过第二种方式折腾,也很快实现了,不过显示的文章有延迟和不显示自定义文章类型,所以就放弃了。

后来在小兽 WordPress 中找到另一种实现的方法,详见『网站如何调用其它 wordpress 网站文章(自动更新)』。具体办法如下:

1、在被调用 WordPress 网站的根目录中建立一个 PHP 文件,并添加以下代码:

<?php
define('WP_USE_THEMES', false);
require('./wp-load.php');
query_posts('showposts=1');
?>
<?php while (have_posts()): the_post(); ?>
<li><a href="<?php the_permalink(); ?>" target="_blank"><?php echo mb_strimwidth(strip_tags(apply_filters('the_title', $post->post_title)), 0, 50," "); ?></a></li>
<?php endwhile; ?>

其中 query_posts()里面的参数可自行修改,如显示的文章数、是否显示置顶文章、是否显示多种类型的文章等。循环主题中的样式也建议根据自己的站点情况调整。

2、在需要调用的地方,如文章页或侧边栏(需要支持 PHP),添加以下代码:

<?php
$url="https://网站域名/call.php";
echo file_get_contents( $url );
?>

其中记得修改以上网站域名为自己站点的完整域名。

本以为一次就能成功,结果根据以上方法添加到懿古今首页的侧边栏时总是出现“failed to open stream: HTTP request failed! ”错误提示,具体如下:

Warning: file_get_contents(https://网站域名/call.php): failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden in 目标文件路径 on line 25

网上搜索了半天发现很多教程都说要修改 PHP.ini,把 allow_url_fopen 给启用,改成 allow_url_fopen = On 之类的。后来在 CSDN 博客中的『完美解决 failed to open stream: HTTP request 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 );
?>

即可。

最终成功在懿古今首页展示 boke112 联盟最新更新的文章(包括 post 文章类型和自定义文章类型),具体见懿古今首页或下图:

懿古今调用boke112联盟最新文章的折腾过程记录 - 第1张 - 懿古今(www.yigujin.cn)

本文地址:https://www.yigujin.cn/2222.html

你可能感兴趣的文章

文章标签: ,  
版权声明:本文为原创文章,版权归 懿古今 所有,欢迎分享本文,转载请保留出处!发布此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请发邮件至[email protected],确认后马上更正、删除,谢谢!

发表评论

  1. maqingxi
    maqingxi @回复

    我是用Feed调用过,直接在后台小工具中就可以实现。

    • 懿古今
      懿古今2019-10-28 22:02  回复

      @maqingxi我也用过,不过感觉还是通过文件生成后调用比较稳定

  2. 讯沃blog
    讯沃blog @回复

    这个方法很好,不错

    • 懿古今
      懿古今2019-10-28 22:02  回复

      @讯沃blog[大笑] 如果自己有多个站点,可以通过这个方法相互引流

  3. 一天天世界
    一天天世界 @回复

    不错不错,学习一下