自定义Wordpress查询基于元值的帖子

时间:2015-05-13 14:32:02

标签: wordpress loops date meta

我有一个简单的wordpress查询,我需要编写作为我正在创建的主题的一部分。

我有大部分内容,但需要在正确的方向上进行一点推动,以便根据自定义帖子类型的自定义元字段实际过滤返回的结果。

如果后期元字段完成日期'或者'发布日期'等于当前日期或之前,将帖子放入已发布的研究表中。

如果帖子元字段'完成日期'或者'发布日期'是当前日期之前的日期,将帖子放入正在进行的研究中。

*更新*

目前我有这个:

<div class="container main-content">
    <div class="row">

        <h1>ONGOING RESEARCH</h1>

        <table class="table table-bordered">
            <tr>
                <th>Type</th>
                <th>Title</th>
                <th>Summary / Abstract</th>
                <th>Keywords</th>
                <th>Type of Research</th>
                <th>Principle Investigator</th>
                <th>Completion Date</th>
            </tr>

        <?php $wp_query_ongoing = new WP_Query( array( 'post_type' => 'research', 'posts_per_page' => 5, 'order' => 'asc' ) ); ?>
        <?php while ( $wp_query_ongoing->have_posts() ) : $wp_query_ongoing->the_post(); //start of the loop ?>

        <?php
            $post_id = get_the_ID();
            $completion_date = get_post_meta( $post_id, "duration_end", true );
            $publication_date = get_post_meta( $post_id,  "publication_date", true );
        ?>
            <?php if (strtotime($publication_date) >= strtotime("now") || strtotime($completion_date) >= strtotime("now")) { ?>
            <tr>
                <td><?php echo do_shortcode('[wpuf-meta name="_hidden_type"]' ); ?></td>
                <td><?php the_title(); ?></td>
                <td>3</td>
                <td>4</td>
                <td>5</td>
                <td>6</td>
                <td>
                    <?php echo do_shortcode('[wpuf-meta name="duration_end"]'); ?>
                    <?php echo do_shortcode('[wpuf-meta name="publication_date"]'); ?>
                </td>
            </tr>

            <?php } ?>

        <?php endwhile; //end of the loop ?>

        </table>



        <h1>PUBLISHED RESEARCH</h1>

        <table class="table table-bordered">
            <tr>
                <th>Type</th>
                <th>Title</th>
                <th>Summary / Abstract</th>
                <th>Keywords</th>
                <th>Author</th>
                <th>Type of Research</th>
                <th>Open Access</th>
                <th>Date Published</th>
            </tr>

        <?php $wp_query_published = new WP_Query( array( 'post_type' => 'research', 'posts_per_page' => 5, 'order' => 'asc' ) ); ?>
        <?php while ( $wp_query_published->have_posts() ) : $wp_query_published->the_post(); //start of the loop ?>

        <?php
            $post_id = get_the_ID();
            $completion_date = get_post_meta( $post_id, "duration_end", true );
            $publication_date = get_post_meta( $post_id,  "publication_date", true );
        ?>
            <?php if ( strtotime($publication_date) <= strtotime("now") || strtotime($completion_date) <= strtotime("now")){ ?>

            <tr>
                <td><?php echo do_shortcode('[wpuf-meta name="_hidden_type"]' ); ?></td>
                <td><?php the_title(); ?></td>
                <td>
                    <?php echo do_shortcode('[wpuf-meta name="synopsis"]'); ?>
                    <?php echo do_shortcode('[wpuf-meta name="abstract"]'); ?>
                </td>
                <td>
                    <?php echo do_shortcode('[wpuf-meta name="keywords"]'); ?>


                    <?php 
                        $terms = get_the_terms($post->ID, 'keywords');  
                        foreach ($terms as $keyword) {
                            $myKeywords[] = $keyword->name;
                        }
                        echo implode( ', ', $myKeywords );
                        $myKeywords = null;
                    ?>

                </td>
                <td><?php echo do_shortcode('[wpuf-meta name="author"]' ); ?></td>
                <td><?php echo do_shortcode('[wpuf-meta name="type_of_research"]'); ?></td>
                <td><?php echo do_shortcode('[wpuf-meta name="open_access"]'); ?></td>
                <td>
                    <?php echo do_shortcode('[wpuf-meta name="duration_end"]'); ?>
                    <?php echo do_shortcode('[wpuf-meta name="publication_date"]'); ?>
                </td>
            </tr>       

            <?php } ?>

        <?php endwhile; //end of the loop ?>

        </table>

*新相关问题*

目前正在进行的研究表工作正常,仅显示将来某处设置元日期的帖子。但是,发布的表格是正确的帖子,但也应该只是正在进行的帖子。 ????

我从未使用过php中的日期。如何根据元字段中提供的日期修改上述代码以返回帖子。

N / B我们不关心帖子实际发布日期,只关注自定义元字段中设置的日期。

https://www.dropbox.com/s/0hddjypw9adj9qj/29_alcoholresearchdirectory_browse-research_1-1.png?dl=0

感谢您的任何指示,我没有使用过PHP和日期。

0 个答案:

没有答案