[EventCalendar] re: Showing the event post ONLY on the day it occurs
Dave Warker
davew1 at mac.com
Mon Dec 4 17:54:30 UTC 2006
> How do you make EventCalendar display the post corresponding to an
> event ONLY on the day it occurs, but otherwise hide it from view on
> the front page?
Hi Alessandro. I've run into the same problem. In theory you can
enter a future post date, the day of your event, and it will not
appear until that date. However, by default Wordpress won't display
future dated posts to anonymous (non logged-in) users so when they
click on a link to see a future dated event they instead get a "no
matching item" message. Previously there was a hack to Wordpress to
work around this but Alex has (rightly) decided its a Wordpress issue
and should be dealt with as such.
There is a simple plug-in called Future Posts:
http://www.figby.com/archives/2005/04/12/wordpress-15-plug-in-view-
future-posts/
that is supposed to fix this exact issue but so far I haven't been
able to get it to work, at least on the latest Wordpress version on
my site. There are hints on fixes it in the comments on that page but
even after correcting for mangling of the posted code it still isn't
working.
It operates by adding a filter to the SQL commands used to fetch
entries that removes the clause that specifically checks that the
post date is <= the current time. I've verified my modified and
simplified version of the plug-in is in fact doing that, but the
posts still don't appear for anonymous users.
Here is my test plug-in (between the // ----- comment lines.) The
original version had several options but for testing I've hard-coded
it to assume what I want: show future posts when they are viewed as a
single item. It is saved as futureposts.php, placed in the plug-ins
folder and activated:
// ----- futureposts.php:
<?php
function wp_future_posts_plugin($content)
{
if (is_single())
$content = preg_replace("/ AND post_date_gmt <= \'.+\'/", "",
$content);
return $content;
}
add_filter('posts_where', 'wp_future_posts_plugin');
?>
// -----
Not a whole lot to it. The preg_replace line is the key, it matches
the portion of the command that excludes future posts and replaces it
with an empty string. Maybe someone else better versed in Wordpress
SQL usage can see the problem.
This is NOT the official futureposts plug-in code so please don't
distribute it as such. When there is a working fix it should be
submitted to the original author so he can incorporate it.
Dave Warker <davew1 at mac.com>
More information about the EventCalendar
mailing list