且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

在wordigniter视图中从Wordpress到WP的帖子

更新时间:2023-11-30 23:20:10

我使用3个技巧将WordPress内容输入CodeIgniter:


  1. 通过XMLHttpRequest从自定义WP模板(跳过页眉/页脚/边栏)拉。我喜欢这种方法,因为它是高度解耦,并且它可以快速加载页面。

  2. 通过CURL或 get_file * 这类似于使用XMLHttpRequests,但是类似于服务器端。

  3. 在库中包装WP。这是更多的工作,但实质是从CI库调用核心WP对象。我在去年对这种方法进行了原型设计,但发现#1表现更好(并且允许我稍后将内容移动到另一台服务器)。

请注意,您也可以IFrame页面,但iframe似乎有点麻烦给予#1和#2。


I use codeigniter and need to display last 3 posts at footer from blog as blabla.com/blog located.

when I create a test.php file as below. it works well,


test.php

<?php
// Include Wordpress 
define('WP_USE_THEMES', false);
require('./blog/wp-blog-header.php');
query_posts('showposts=3');
?>
<ul>
<?php while (have_posts()): the_post(); ?>
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php endwhile; ?>
</ul>

but when I copy same code to footer_view.php of codeigniter structre, it doesnt work and giving error as below:

error at codeigniter footer_view:

Fatal error: Call to undefined method stdClass::set_prefix() in /blabla/blog/wp-settings.php on line 268

any idea what can be the problem? :/ appreciate helps!!

I've used 3 tricks for getting WordPress content into CodeIgniter:

  1. Pull via XMLHttpRequest from a custom WP template (skip headers/footers/sidebars). I like this method as it is highly decoupled, and it makes for fast page loads.
  2. Pull via CURL or get_file*. This is similar to using XMLHttpRequests, but server side.
  3. Wrap WP in a library. This is more work, but the essence is calling the core WP object from a CI library. I prototyped this method last year, but found that #1 performed better (and it allowed me to move the content to another server later).

Note, you could also IFrame the page, but IFrames seem a bit hackish given #1 and #2.