懿古今調用boke112聯盟最新文章的折騰過程記錄

 懿古今    2019-10-25 13:14:10 

今天閑著無聊又想折騰點什么,然后就覺得懿古今(www.410995.live)首頁主體內容部分顯示的就是最新文章,然后側邊欄又顯示最新文章,感覺有點重復,就想改為顯示其他內容。后來想了想就改顯示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.410995.live)

你可能感興趣的文章

阿里云·云小站,上云優惠聚集地,云服務器1核2G1年89元,3年229元;2核4G5M3年899元
文章標簽: ,   ,  
版權聲明:本文為原創文章,版權歸 懿古今 所有,歡迎分享本文,轉載請保留出處!
?懿古今,云服務器等云產品首推 阿里云 其次推薦 騰訊云,免備案虛擬主機推薦 老薛主機

發表評論

大笑表情偷笑表情鼓掌表情思考表情疑問表情摳鼻表情抓狂表情暈表情黑線表情流汗表情流淚表情囧表情衰表情圍觀表情OK表情牛表情

表情

  1. 一天天世界
    一天天世界 @回復

    不錯不錯,學習一下

  2. 訊沃blog
    訊沃blog @回復

    這個方法很好,不錯

  3. maqingxi
    maqingxi @回復

    我是用Feed調用過,直接在后臺小工具中就可以實現。