1

サブカテゴリ (イベントが開催されている都市) で検索できるイベント カテゴリがあります。私は「未来は今だ!」を持っています。プラグインを使用して、将来の日付の投稿を公開できるようにしますが、投稿が「期限切れ」になると、ループ/アーカイブに表示されなくなるページ分割されたテンプレートを設定できることを望んでいます。

また、これらの投稿を検索結果から除外することもできますか?

これが役立つ場合、これは私の現在のイベントページのコードです:

<h2>Upcoming Events</h2>
        <ul class="posts">
            <?php
            $limit = get_option('posts_per_page');
            $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
            query_posts('showposts=' . $limit . '&paged=' . $paged .'&cat=1&order=ASC');
            $wp_query->is_archive = true; $wp_query->is_home = false;
            ?>
            <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
                <li class="events_ticker" id="post-<?php the_ID(); ?>">
                <span class="left">
                <h3><?php the_time('F jS, Y') ?></h3>
                <p><?php if (strlen($post->post_title) > 25) { echo substr(the_title($before = '', $after = '', FALSE), 0, 25) . '...';} else {the_title();} ?></p>
                <?php global $more; $more = 0; the_excerpt(); ?>
                <p><a href="<?php echo get_permalink(); ?>">Read More</a></p>
                </span>
                    <a href="<?php echo get_permalink(); ?>"><?php if ( function_exists("has_post_thumbnail") && has_post_thumbnail() ) { the_post_thumbnail(array(143,110), array("class" => "right post_thumbnail")); } ?></a>
                </li>
                <img src="<?php bloginfo('stylesheet_directory'); ?>/images/content_breaker_wide.png" alt=" breaker" class="content_breaker" />
            <?php endwhile; ?>
        </ul>
        <!-- end events loop -->
        <div class="navigation">
            <p class="alignleft"><?php next_posts_link('< Next') ?></p>
            <p class="alignright"><?php previous_posts_link('Next >') ?></p>
        </div>

<?php endif; ?>
4

1 に答える 1

0

「この日付までのすべての投稿」という簡単なパラメーターはないと思うので、posts_where_pagedフィルターを実装する必要があります。そこで、 を確認できます!(is_archive() || is_search())。これら 2 つは通常どおり続行できるためです。他の部分については、またはそのようなものを追加します" AND $wpdb->posts.post_date < NOW()"(ただし、今日後で発生するイベントが非表示になるため、今は使用しないでください。おそらくそれは望ましくありません)。

同様の質問が WordPress Answers Stack Exchange サイト(2010 年 8 月 20 日まではプライベート ベータ版のため、事前登録しないとアクセスできません) で尋ねられました。ジョー・ホイルの提案は単純でした:

「上映時間」に追加の日付を追加するだけの場合は、まさにそれを行うメタ ボックスを追加する方が簡単な場合があります。公開日を使用してなりすましを行うと、潜在的に問題になる可能性があります。将来の公開日で更新されるたびに「将来」のステータスになるため(私は思う)、投稿が更新されるたびにフックして元に戻す必要があります。また、そのようにして、意図したとおりに「公開日」を予約することもできます。

meta_keyと、カスタム メタ ボックスを使用するだけです。ただし、投稿を表示するクエリがどれほど複雑かによって異なります。

meta_value をタイムスタンプとして設定すると、表示時間の日付で並べ替えるか、特定の日付の前後を選択できます。

$events = get_posts('post_type=events&meta_key=show_time&meta_value='
. strtotime( '+1 week' ) .
'&meta_compare=<&orderby=meta_value');

ショータイムが現在の日付から 1 週間以内のすべての「イベント」を取得します。注:上記はテストされていませんが、 動作するはずです:)

(この回答はコミュニティ ウィキなので、Joe の発言を再投稿するだけでは担当者ポイントを獲得できません。)

于 2010-08-14T08:01:59.190 に答える