我试图从另一个Wordpress数据库(实际上是在同一台服务器上)添加最新的帖子,但出现以下错误:
Fatal error: Call to undefined method wpdb::query_posts() in /var/www/site/wp-content/themes/custom/footer.php on line 68
代码如下:
<!-- .entry-content -->
<?php
$originaldb = new wpdb(\'username\', \'password\', \'db\', \'localhost\');
$originaldb->query_posts( \'posts_per_page=1\' );
if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<header class="entry-header">
<div class="entry-meta">
<?php echo \'<span class="entry-day">\'.get_the_date(\'j\').\'</span><br><span class="entry-month">\'.get_the_date(\'M\').\'</span>\'; ?>
</div>
<div class="title-box">
<h2 class="blog-title"><a href="<?php the_permalink(); ?>"><?php the_title() ?></a></h2>
<?php echo \'<a href="\'.get_author_posts_url( get_the_author_meta( \'ID\' ) ).\'">\' . the_author() . \'</a>\'; ?>
</div>
<div class="clear"></div>
</header>
<div class="entry-content">
<?php the_excerpt(); ?>
</div>
<?php endwhile; else: ?>
Testing has failed
<?php endif; ?>
最合适的回答,由SO网友:jordanandree 整理而成
Wordpress wpdb类与通常的查询方式略有不同,因为您可以运行“普通”数据库查询。
您可以在Wordpress文档中查看wpdb类的文档:http://codex.wordpress.org/Class_Reference/wpdb#Run_Any_Query_on_the_Database
此外,关于您的代码,您应该能够在此处更改行:
$originaldb->query_posts( \'posts_per_page=1\' );
对这样的事情:
$results = $originaldb->get_results( "SELECT * FROM $wpdb->posts LIMIT 1" );
这将为您提供一组帖子,然后您可以使用循环处理这些帖子:
if($results):
foreach($results as $post): setup_postdata($post);
// do stuff with normal wp template tags
endforeach;
else:
// no posts
endif;