我想在同一台服务器上的外部页面上显示来自两个不同wordpress博客的信息。一切似乎都很好 - 首先请求第一个博客的信息并正确显示。
然而,当第一个循环(来自第一个博客的信息)开始时,它似乎不会结束并影响第二个循环。因此,来自第二个博客的第二个信息请求(博客上的最后一个帖子)从第一个博客返回信息。
有没有办法通过在同一页面上使用wp-blog-header.php的不同路径多次实际使用require('./wp-blog-header.php');
?
这是我到目前为止的来源:
<?php
define('WP_USE_THEMES', false);
require_once('../path1/wp-blog-header.php');
$posts = get_posts('numberposts=4');
foreach ($posts as $post) : setup_postdata( $post );
echo '<li><a href="';
the_permalink();
echo '" title="';
the_title();
echo '" target="_blank">';
the_post_thumbnail('thumbnail');
echo '</a></li>';
endforeach;
?>
[...]
<?php
define('WP_USE_THEMES', false);
require_once('../path2/wp-blog-header.php');
$posts = get_posts('numberposts=1');
foreach ($posts as $post) : setup_postdata( $post );
echo '<h2>';
the_title();
echo '</h2><p>';
the_excerpt();
echo '</p>';
endforeach;
?>
如果我禁用第一个循环,第二个循环工作正常并从第二个博客获取信息。如果启用了第一个循环,则第二个循环显示来自第一个博客的信息。
我似乎没有找到有关此问题的任何信息。 我是PHP的新手。
感谢您的帮助!
伊万
答案 0 :(得分:0)
要多次使用标题,您应该使用
require_once('./wp-blog-header.php')
<强>被修改强>
我已使用each_connect
编辑了您的代码,因此第一个循环的后期数据将不会显示在下一个循环中。
<?php
$posts = new WP_query();
// Find connected pages (for all posts)
p2p_type( 'posts' )->each_connected( $wp_query );
?
<?php
require_once('../path1/wp-blog-header.php');
$posts->query('numberposts=4');
while ( $wp_query->have_posts() ) : $wp_query->the_post();
foreach ( $post->connected as $post ) : setup_postdata( $post );
echo '<li><a href="';
the_permalink();
echo '" title="';
the_title();
echo '" target="_blank">';
the_post_thumbnail('thumbnail');
echo '</a></li>';
endforeach;
wp_reset_postdata(); // set $post back to original post
endwhile;
?>
[...]
<?php
require_once('../path2/wp-blog-header.php');
$posts->query('numberposts=1');
while ( $wp_query->have_posts() ) : $wp_query->the_post();
foreach ( $post->connected as $post ) : setup_postdata( $post );
echo '<li><a href="';
the_permalink();
echo '" title="';
the_title();
echo '" target="_blank">';
the_post_thumbnail('thumbnail');
echo '</a></li>';
endforeach;
wp_reset_postdata(); // set $post back to original post
endwhile;
?>
答案 1 :(得分:0)
它们必须位于不同的目录中,所以如果您提供不同目录的路径,那么它不应该是一个问题。