我在www.example.com/blog
设置了一个Wordpress博客,在www.example.com
设置了一个Codeigniter网站。我正在尝试将最近的帖子从博客显示到我的Codeigniter网站。为此,我使用
wp-load.php
文件
require($_SERVER['DOCUMENT_ROOT'] . '/blog/wp-load.php');
// require_once('../app/blog/wp-load.php');
$args = array(
// 'cat' => 3, // Only source posts from a specific category
'posts_per_page' => 4 // Specify how many posts you'd like to display
);
$latest_posts = new WP_Query( $args );
if ( $latest_posts->have_posts() ) {
while ( $latest_posts->have_posts() ) {
$latest_posts->the_post(); ?>
<marquee align="top" behavior="scroll" onmouseover="this.stop();" onmouseout="this.start();" direction="up" scrolldelay="200" ><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>">
<li>
<?php if ( has_post_thumbnail() ) { ?>
<span class="post_thumbnail"><?php the_post_thumbnail(); ?></span>
<?php } ?>
<span class="post_title"><?php the_title(); ?></span>
</a>
<!--span class="post_time">Posted on <?php the_time('l jS F, Y') ?></span-->
<?php //the_excerpt(); ?>
</li>
</marquee >
<? }
} else {
echo '<p>There are no posts available</p>';
}
wp_reset_postdata();
?>
但抛出内部服务器错误。 我是否必须更改文件权限?请帮忙。该网站由Godaddy主持。
错误明细:
内部服务器错误
服务器遇到内部错误或配置错误 无法完成您的请求。
请联系服务器管理员以告知时间 发生错误以及您可能已经做过的任何事情 导致错误。
有关此错误的详细信息可能在服务器错误中可用 日志中。
答案 0 :(得分:0)
不要在主网站中包含任何Wordpress文件,因为它可能会导致许多错误。而是使用Codeigniter的第二个数据库连接来连接到您的Wordpress数据库。 正在搜索get wordpress posts from database to codeigniter我找到了此gist和this article。以下代码取自本文。请注意,此代码适用于Codeigniter 2,并且未对代码进行测试。但我以前在Codeigniter处理了很多数据库,只要问你是否发现任何问题。
<强>一个。在application/config/database.php
文件中添加不同的设置数据以及主网站数据库设置:
$db['wordpress']['hostname'] = "wordpress_db_host"; // database host
$db['wordpress']['username'] = "wordpress_db_username"; // db user name
$db['wordpress']['password'] = "wordpress_db_password"; // db user password
$db['wordpress']['database'] = "wordpress_db"; // database name
<强>湾在application/models/wordpress_model.php
中构建Wordpress模型:
<?php if (!defined('BASEPATH')) die ('No direct script access allowed!');
class Wordpress_Model extends CI_Model
{
function getPosts()
{
$this->load->database('wordpress', TRUE); // load database
// get the wordpress posts, customize it as you like
$this->wordpress->select("post_id, post_title, post_content");
$this->wordpress->from('post_tbl');
$this->wordpress->limit(5);
$query = $this->wordpress->get();
$data['posts'] = $query->result();
$this->load->view('wordpress_posts_view', $data); // load the view file , we are passing $data array to view file
}
}
<强>℃。在application/views/wordpress_posts_view.php
中创建视图文件:
<h4>Display Records From Database Using Codeigniter</h4>
<table>
<tr>
<td><strong>Post Id</strong></td>
<td><strong>Post Title</strong></td>
</tr>
<?php foreach($posts as $post){?>
<tr>
<td><?php echo $post->post_id;?></td>
<td><?php echo $post->post_title;?></td>
</tr>
<?php }?>
</table>
<强> d。现在,您可以在任何Codeigniter控制器中调用所有这些:
<?php if (!defined('BASEPATH')) die ('No direct script access allowed!');
class Homepage extends CI_Controller
{
public function index()
{
$this->load->model('wordpress_model');
$data['wordpress_html_posts'] = $this->wordpress_model->getPosts();
print_r($data['wordpress_html_posts']);
}
}