我多年来一直是贸易设计师,但是我正在为一个客户使用WordPress,并且已经设法使用钩子......我现在处于停滞状态。
在主页上,我有两个区域将从数据库中提取信息:
<?php
$thumb_posts = get_posts(array('category' => '6', 'orderby' => 'rand', 'numberposts' => 2, 'meta_key' => '_thumbnail_id' ));
if($thumb_posts) { ?>
<?php foreach( $thumb_posts as $post ) {
echo '<div class="feature"><div class="thumbnail">
<a href="' . get_permalink($header_thumb->ID) . '">' . get_the_post_thumbnail($header_thumb->ID,array(240,170)) . '</a></div>';
$url = get_permalink($post->ID);
$filecontent = file_get_contents('https://graph.facebook.com/?ids=' . $url);
$json = json_decode($filecontent);
$count = $json->$url->comments;
if ($count == 0 || !isset($count)) {
$count = '0';
} elseif ( $count == 1 ) {
$count = '1';
} else {
$count .= '';
}
echo '<h3 class="title"> <a href="' . get_permalink($header_thumb->ID) . '#comments" class="comments">' . $count . '</a> <a href="' . get_permalink($header_thumb->ID) . '"> ' . get_the_title($ID) . ' </a> </h3></div>';
} ?>
我没有写,但是用随机标题和缩略图调用facebook评论计数。
这是我的问题......一旦我将第二个代码放在此之后它就会抛出计数/图像检索。但是,如果我放置此代码之前一切都很好。
<?php
$thumb_posts = get_posts(array('category' => '6', 'orderby' => 'rand', 'numberposts' => 2, 'meta_key' => '_thumbnail_id' ));
if($thumb_posts) {
?>
<?php
global $post;
$myposts = get_posts('numberposts=20');
foreach($myposts as $post) :
?>
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> |
<span class="post-info"> <?php echo human_time_diff( get_the_time('U'),
current_time('timestamp') ) . ' ago'; ?> </span></li>
<?php endforeach; ?>
在我的思考过程中,我需要以某种方式使它成为第二个代码不会以某种方式抛弃第一个独立代码。
答案 0 :(得分:1)
由于这组线路,它不是“从相同的参数中拉出来的”:
global $post;
$myposts = get_posts('numberposts=20');
foreach($myposts as $post) :
按顺序:
global $post
,您将提升对Wordpress设置的全局变量$post
的引用。 $post
代表当前帖子。$myposts
。这很好。$myposts
循环$post
。最后一项任务导致Wordpress的全局$post
被重置并破坏所有其余部分。请考虑改为:
<?php
global $post;
$myposts = get_posts('numberposts=20');
foreach($myposts as $current_post) :
?>
这根本不会修改全局范围,这是Wordpress保存一些内容的地方。