I need 3 different queries in one page.
When I do it I get an error like this:
Cannot redeclare filter_where() (previously declared in W:\\home\\zerk\\www\\wp-content\\themes\\newss\\most_commented.php:19) in W:\\home\\zerk\\www\\wp-content\\themes\\news\\most_commented.php on line 41
Here is my code:
<div id="page-wrap">
<h3>Most commented </h3>
<div id="example-five">
<ul class="nav">
<li class="nav-one"><a href="#featured" class="current">Lat day</a></li>
<li class="nav-two"><a href="#core">Lat week</a></li>
<li class="nav-three"><a href="#jquerytuts">Lat month</a></li>
</ul>
<div class="list-wrap">
<ul id="featured">
<?php
function filter_where($where = '') {
$where .= " AND post_date > '" . date('Y-m-d', strtotime('-1 days')) . "'";
return $where;
}
add_filter('posts_where', 'filter_where');
query_posts('post_type=post&posts_per_page=5&orderby=comment_count&order=DESC');
while (have_posts()): the_post(); ?>
<li>
<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a>
</li>
<?php
endwhile;
wp_reset_query();
?>
</ul>
<ul id="core" class="hide">
<?php
function filter_where($where = '') {
$where .= " AND post_date > '" . date('Y-m-d', strtotime('-7 days')) . "'";
return $where;
}
add_filter('posts_where', 'filter_where');
query_posts('post_type=post&posts_per_page=5&orderby=comment_count&order=DESC');
while (have_posts()): the_post(); ?>
<li>
<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a>
</li>
<?php
endwhile;
wp_reset_query();
?>
</ul>
<ul id="jquerytuts" class="hide">
<?php
function filter_where($where = '') {
$where .= " AND post_date > '" . date('Y-m-d', strtotime('-30 days')) . "'";
return $where;
}
add_filter('posts_where', 'filter_where');
query_posts('post_type=post&posts_per_page=5&orderby=comment_count&order=DESC');
while (have_posts()): the_post(); ?>
<li>
<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a>
</li>
<?php
endwhile;
wp_reset_query();
?>
</ul>
</div>
The problem is given in the error message very clearly.
Cannot redeclare filter_where()
You can't re-declare the function filter_where
- try this. Notice the functions are given unique names.
This is true in all PHP, you can't have more than one function with the same name.
<div id="page-wrap">
<h3>Most commented </h3>
<div id="example-five">
<ul clas="nav">
<li class="nav-one"><a href="#featured" class="current">Lat day</a></li>
<li class="nav-two"><a href="#core">Lat week</a></li>
<li class="nav-three"><a href="#jquerytuts">Lat month</a></li>
</ul>
<div class="list-wrap">
<ul id="featured">
<?php
function filter_where($where = '') {
$where .= " AND post_date > '" . date('Y-m-d', strtotime('-1 days')) . "'";
return $where;
}
add_filter('posts_where', 'filter_where');
query_posts('post_type=post&posts_per_page=5&orderby=comment_count&order=DESC');
while (have_posts()): the_post(); ?>
<li>
<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a>
</li>
<?php
endwhile;
wp_reset_query();
?>
</ul>
<ul id="core" class="hide">
<?php
function filter_where2($where = '') {
$where .= " AND post_date > '" . date('Y-m-d', strtotime('-7 days')) . "'";
return $where;
}
add_filter('posts_where', 'filter_where2');
query_posts('post_type=post&posts_per_page=5&orderby=comment_count&order=DESC');
while (have_posts()): the_post(); ?>
<li>
<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a>
</li>
<?php
endwhile;
wp_reset_query();
?>
</ul>
<ul id="jquerytuts" class="hide">
<?php
function filter_where3($where = '') {
$where .= " AND post_date > '" . date('Y-m-d', strtotime('-30 days')) . "'";
return $where;
}
add_filter('posts_where', 'filter_where3');
query_posts('post_type=post&posts_per_page=5&orderby=comment_count&order=DESC');
while (have_posts()): the_post(); ?>
<li>
<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a>
</li>
<?php
endwhile;
wp_reset_query();
?>
</ul>
</div>
That said, the code has lots of other problems too - I would suggest reading a basic introduction to PHP.
http://php.net/manual/en/tutorial.php
The whole idea of a function is one of encapsulation, that is, you write the code once - then call it when you need that functionality.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.