WordPress网站如何调用其它网站最新文章(自动更新)
我们在做wordpress主题的时候,想在主题设置的某个位置专门来显示作者网站里某个分类下的文章;或者我们想在一个wordpress网站里调用另外一个网站内的文章,我们该如何操作呢?
场景一:调用另一个Wordpress网站文章
如果我们调用的网站也是使用Wordpress程序建的,那么我们首先要在被调用的wordpress网站的网站根目录下新建一个call.php文件,具体这个文件名可以任意修改,然后将下面的代码放入其中,注意是uft-8无Bom模式。
<?php
define('WP_USE_THEMES', false);
require('wp-load.php');
query_posts('showposts=10');
?>
<?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; ?>
define('WP_USE_THEMES', false);
require('wp-load.php');
query_posts('showposts=10');
?>
<?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(\'showposts=10\'); 是可以自行修改的,具体修改方法因 WordPress 主题和插件使用而异。在需要调用的地方(需 php 支持),添加以下代码:
<?php
$url="https://www.xuewangzhan.net/call.php";
echo file_get_contents( $url );
?>
$url="https://www.xuewangzhan.net/call.php";
echo file_get_contents( $url );
?>
将上面的网址替换成自己的网址即可!
场景二:调用非Wordpress网站文章
上面的方法就是在一个WP网站里调用另一个WP网站最新文章,如果我们想调用非WP网站的最新文章,又怎么做呢?
调用非WP网站文章,只能使用连接数据库,然后直接在数据库里取值的方法。
先连接数据库,再根据自己需要取出最新文章,然后,将数据库里文章的标题,链接,缩略图都调用出来。下面代码以WP网站调用ZBLOG网站最新文章代码。
//代码来源:学做网站论坛 https://www.xuewangzhan.net/
$connsql = mysqli_connect("localhost","root","datapassword","dataname"); //连接数据库
$result = mysqli_query($connsql,"select * from zbp_post ORDER BY log_PostTime DESC limit 0,11");//获取最新11条数据
$i=1;
while($row = mysqli_fetch_array($result))//转成数组,且返回第一条数据,当不是一个对象时候退出
{?>
<?php
if($i==1){?>
<div class="wz-item">
<h3>
<a href="<?php echo $urlsql;?>"><?php echo $titsql;?></a>
<a href="<?php echo $urlsql;?>" title="更多…" style="float:right"><i class="wpcom-icon wi"><svg aria-hidden="true"><use xlink:href="#wi-arrow-right-3"></use></svg></i></a>
</h3>
<ul class="wz-item-list">
<?php $first_img = '';
ob_start();
ob_end_clean();
$output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $row['log_Content'], $matches);
$first_img = $matches [1] [0];
?>
<li class="wz-first clearfix">
<div class="imgdiv fleft">
<a class="item-img-inner" href="<?php echo $urlsql.''.$row['log_ID'].'.html';?>" title="<?php echo $row['log_Title'];?>" rel="bookmark">
<img src="<?php echo $first_img;?>" />
</a>
</div>
<div class="wz-con fright">
<h4>
<a href="<?php echo $urlsql.''.$row['log_ID'].'.html';?>" title="<?php echo $row['log_Title'];?>"><?php echo $row['log_Title'];?></a>
</h4>
<p>
<?php echo mb_strimwidth(strip_tags($row['log_Content']), 0, 200, '…'); ?>
</p>
</div>
</li>
<div class="puul">
<?php }else{?>
<li class="ptli">
<i class="wpcom-icon wi"><svg aria-hidden="true"><use xlink:href="#wi-arrow-right-3"></use></svg></i><a href="<?php echo $urlsql.''.$row['log_ID'].'.html';?>" title="<?php echo $row['log_Title'];?>"><?php echo mb_strimwidth($row['log_Title'], 0, 38, '…'); ?></a>
<span class="fright"><?php echo date("Y-m-d",$row['log_PostTime']); ?> </span>
</li>
<?php }?>
<?php
$i++;
}
echo ' </div>
</ul>
</div>';
mysqli_close($connsql);
}