序言
标题太长,表达两个意思,一是让WordPress网站“文本小工具”运行PHP代码,二就是通过“文本小工具运行PHP代码”的功能来调用其他WordPress网站的最新文章。
前几天和小胡同学一起搞了个资源分享网站-土鸽子,网站名称起的很随意并不能表达网站内容。不过这有什么呢,难道“天猫网”就是“搞猫”的吗?
土鸽子目前才建起来,资源发布是一方面,另一方面就是推广外链了。这个时候小胡同学建议我在自己的博客上放上土鸽子的RSS,折腾半天没有成功。不过最后还是请教了度娘实现了利用“文本小工具”运行PHP代码,在老张博客上调用了土鸽子的最新文章。
WordPress自带的“文本小工具”运行PHP代
WordPress自带的“文本小工具”是不支持运行PHP代码的,这个时候我们可以改造他。
将以下代码添加到你当前主题的 functions.php 文件:
add_filter('widget_text', 'php_text', 99); function php_text($text) { if (strpos($text, '<' . '?') !== false) { ob_start(); eval('?' . '>' . $text); $text = ob_get_contents(); ob_end_clean(); } return $text; }
就这么简单,这样之后,文本小工具添加到侧边栏中,并在其中输入PHP函数代码就可以运行了。用MO Widgets插件也可以实现这个功能。
调用其它wordpress网站最新文章,并自动更新
首先要在被调用的wordpress网站的根目录,也就是我的https://tugezi.com根目录下新建一个php文件,具体这个文件名可以任意修改,然后将下面的代码放入其中。我这里创建的是new.php,并将以下代码复印到该文件中。
<?php define('WP_USE_THEMES', false); require('./wp-load.php'); query_posts('showposts=5'); ?> <?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=5')后面的数字可以随意修改,也就是你想在自己网站上显示文章的数量。我这里设置的是显示最新的5篇文章。
然后在文本小工具中复制以下代码,这个时候,就可以显示被调用网站https://tugezi.com的最新文章了。
<?php $url="https://tugezi.com/new.php"; echo file_get_contents( $url ); ?>
这个时候,就完美在实现在在老张博客首页侧栏文本小工具实现调用土鸽子https://tugezi.com的最新5篇文章了。
具体效果见老张博客左侧“推荐资源”。