it-swarm.com.de

Letzter Beitrag aus einer anderen Datenbank

Ich versuche, den neuesten Beitrag aus einer anderen Wordpress-Datenbank (auf demselben Server) hinzuzufügen, erhalte jedoch die folgende Fehlermeldung:

Fatal error: Call to undefined method wpdb::query_posts() in /var/www/site/wp-content/themes/custom/footer.php on line 68

Hier ist der Code:

<!-- .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; ?>
1
Jamie Howard

Die Wordpress-wpdb-Klasse unterscheidet sich ein wenig von der normalen Art der Abfrage, indem Sie "Vanilla" -Datenbankabfragen ausführen.

Dokumentation zur wpdb-Klasse finden Sie in den Wordpress-Dokumenten: http://codex.wordpress.org/Class_Reference/wpdb#Run_Any_Query_on_the_Database

Auch in Bezug auf Ihren Code sollten Sie in der Lage sein, die Zeile hier zu ändern:

$originaldb->query_posts( 'posts_per_page=1' );

Auf so etwas:

$results = $originaldb->get_results( "SELECT * FROM $wpdb->posts LIMIT 1" );

Damit erhalten Sie eine Reihe von Beiträgen, die Sie dann mit einer Schleife verarbeiten können:

if($results):
  foreach($results as $post): setup_postdata($post); 
    // do stuff with normal wp template tags
  endforeach;
else: 
  // no posts 
endif;
1
jordanandree
function get_other_posts() {
    $wpdb_old = wp_clone( $GLOBALS['wpdb'] );
    $wpdb_new = &$GLOBALS['wpdb'];  

    // All you have to care about following two lines
    $wpdb_new = new wpdb( 'your_db_username', 'db_password', 'new_db_name', 'localhost' );
    $wpdb_new->set_prefix( 'wp_' );

    // Now whatever function you'll call, it will use new database
    $posts = get_posts( 'numberposts=5' );

    // We are done so lets take the old wpdb back on its position
    $wpdb_new = $wpdb_old;  
}
1
Muhammed