2

wordpress 以外の php ページに wordpress ブログの投稿を表示する必要があります。次のコードを試しました。

<?php
// Include WordPress
define('WP_USE_THEMES', false);
//exact path for wp-load.php.
// This file is kept in the root of wordpress install
require('http://test.com/wordpress/blog/wp-load.php');
//Query wordpress for latest 4 posts
query_posts('showposts=5');
?>
<?php while (have_posts ()): the_post(); ?>
    <h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
<?php the_excerpt(); ?>

<?php endwhile; ?>

しかし、それは私に次のエラーを示しました

Fatal error: Call to undefined function query_posts()

これを修正する方法は?

4

6 に答える 6

3

コードの次の行を調べてください

require('http://test.com/wordpress/blog/wp-load.php');

require 関数では、相対パスまたは物理パスを使用する必要があります。URL は含めないでください。

于 2012-10-29T13:32:46.003 に答える
1

外部統合の場合、RSSルートを介してこれにアプローチする方が信頼性が高い可能性があります。この作業を行う最も簡単でおそらく最も怠惰な方法は、simplexml_load_file(およびHTTPストリーム)を使用することです。

$t = simplexml_load_file( "http://blogs.voanews.com/breaking-news/feed/" );

foreach( $t->channel->item as $item ) {
    printf(
        "<div>%s <a href='%s'>%s</a></div><hr/>",
        $item->description,
        $item->link,
        $item->title
    );
}

これにより、期待どおりにフィードが出力されます。これはいかなる種類のキャッシュも使用しないため、すべてのページリクエストが元のフィードにヒットすることに注意してください。

<div>Some Chinese officials are furious at Apple's iPhone for apparently 
helping users have too much of a good time. Chinese media say the complaints
surround the iPhone's voice-activated personal assistant, known as
&#8220;Siri,&#8221; which has been helping some users find prostitutes and
brothels. The Mandarin language version can apparently present users with as
many as [...] <a href='...(snip)...)'>iPhone Under Fire in China over
Prostitution</a></div>
于 2012-10-29T13:36:50.277 に答える
1

wordpress データベースとフレームワークが必要なため、これはまったく機能しないようです。自作のスクリプトでフェッチできる XML、RSS、または JSON データをワードプレスから取得してみてください。

于 2012-10-29T13:11:29.750 に答える
0

rss オプションを使用して、新しい隠しコードを記述し、そのファイルを使用してデータを読み取ることができます... JSON 形式で

おそらく最初に行うことは、これを行うエクステンション/プラグイン/モジュールを検索することです。

これをやりたいと思ったのはあなたが初めてではないと思います:p

于 2012-10-29T13:14:33.653 に答える
0

wp-load.php をインクルードした後、次のようにクエリをインスタンス化する必要があります。

$wp_query = new \WP_Query();
$wp_query->query('showposts=5');

その後、ループは次のようになります。

<?php while ($wp_query->have_posts()) :
    $wp_query->the_post();
    <h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
    <?php the_excerpt(); ?>

<?php endwhile; ?>
于 2017-12-07T19:07:09.157 に答える