在今天之后获取帖子(即将举行的活动)

时间:2011-01-30 作者:AnaRita

我正在使用PHP Exec构建一个小部件来显示即将发生的事件的列表:

<?php
function filter_whene($whene = \'\') {
    $whene .= " AND post_date >= \'" . date(\'Y-m-d\') . "\' ";
return $whene;
  }
add_filter(\'posts_whene\', \'filter_whene\');
query_posts(\'cat=10&showposts=3&\');
if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
            <li><?php the_date(); ?> <a href="<?php the_permalink(); ?>">
  <?php the_title(); ?>
  </a>  </li>
<?php endwhile;
else: ?><p>Não há eventos agendados.</p>
<?php endif; ?>
<?php remove_filter(\'posts_whene\', \'filter_whene\'); ?>
<?php wp_reset_query(); ?>
它似乎在前端工作,但我得到:

致命错误:无法在/home/content/a/c/a/acamorg/html/cea2/wp-content/plugins/exec-php/includes/runtime.php(42):eval()\'d代码:3)中重新声明filter\\u-whene()。php(42):第6行的eval()\'d代码

在小部件后端。

有什么建议吗?

非常感谢。

2 个回复
最合适的回答,由SO网友:MikeSchinkel 整理而成

你好@user2816:

您似乎在多个小部件中使用该代码?尝试更改以下代码的一部分:

function filter_whene($whene = \'\') {
  $whene .= " AND post_date >= \'" . date(\'Y-m-d\') . "\' ";
  return $whene;
}
add_filter(\'posts_whene\', \'filter_whene\');
对此:

if (!function_exists(\'filter_whene\')) {
  function filter_whene($whene = \'\') {
    $whene .= " AND post_date >= \'" . date(\'Y-m-d\') . "\' ";
    return $whene;
  }
}
add_filter(\'posts_whene\', \'filter_whene\');
更好的是,将尽可能多的代码移动到主题的functions.php 文件将其包装到函数中,然后只需在PHP Exec小部件中键入一行代码。

或者更好,get rid of that plugin completely and write your own widget; 因为PHP Exec是evil.

P、 好吧,PHP Exec本身并不是邪恶的,但一旦你尝试做一些琐碎的事情,就会产生比解决问题更多的问题。

SO网友:ariefbayu

这并没有直接回答你的问题。我在侧边栏上使用此片段,以获取将来的帖子:

<ul>
<?php
query_posts(\'post_status=future&order=asc&orderby=date\');
//The Loop
if ( have_posts() ) : while ( have_posts() ) : the_post();
  echo "<li>";
  echo the_date();
  echo "<br />";
  echo the_title();
  echo"</li>";
endwhile; else:
   echo "<li>there\'s no future post at the moment.</li>";
endif;
?>
</ul>

结束

相关推荐

Why use widgets?

我对使用WordPress很陌生,我想知道使用小部件的好处是什么?看here 这听起来像是为那些不是程序员的人准备的,他们想在他们的网站上添加插件。对吗?或者小部件是否在某种程度上使站点更加健壮?