由于每日添加 VOA 的资源,我的 MP3 资源 的页面将会经常的更新,数据库中会存下很多没必要的修订版本,所以这个页面我想直接用 php 去做。
我的网站是基于 Yii 的,所以用 Yii 的 mvc 来做页面可以非常方便,整合的方法可以看 《Yii 整合 WordPress》。但是这样就不能有 WordPress 的评论功能了,所以还是想使用 WordPress 的文章或者页面。
让文章执行 php 的方法有很多,可以使用插件或者用 Shortcode ,但都显得麻烦而且累赘,而我的需求也并不一定要在文章中嵌入代码。那么就换一个思路来:在文章后面加入一个 php 页面。
add_filter( 'the_content', 'the_content_filter_extra_page' ); function the_content_filter_extra_page($content) { global $post; $viewFile = get_post_meta($post->ID, 'extra-page', true); if($viewFile !== '') { $viewFile = ABSPATH . $viewFile; ob_start(); ob_implicit_flush(false); require($viewFile); return $content . ob_get_clean(); } else { return $content; } }
在主题的 functions.php 插入上述代码,为文章添加一个自定义栏目,关键字设为 “extra-page”,设置要执行的 php 文件路径,相对于 wordpress 的根目录。
这里使用了 ob_start 和 ob_get_clean 得到 php 的执行结果并添加到文章内容的后面。
以后对这个页面的修改,直接更改对应的 php 文件并上传即可。
0 条评论。