根据标题在自定义帖子类型中按标签显示帖子

时间:2014-12-02 17:50:56

标签: php wordpress loops advanced-custom-fields

在我的网站上,我有一个充满公司的目录(自定义帖子类型),每个都有自己的列表页面。现在,在页面底部,我想显示所有标记有该公司标题的帖子,如其目录列表页面所示。​​

目录页

示例公司
示例公司

的相关帖子

为了进行测试,我手动设置了'rennicks'作为标签。然后添加了#rennicks'作为约5个帖子中的标签,它们都显示在列表页面中。但显然我需要它来动态检索标题并根据该变量中的数据搜索标记。

$original_query = $wp_query;
$wp_query = null;
$args=array('tag' => 'rennicks');
$wp_query = new WP_Query( $args );
if ( have_posts() ) :
?>
    <?php
        while (have_posts()) : the_post(); ?>
            <div class="small-12 medium-6 columns content-excerpt">
                <div class="thumbnail medium-6 columns nopm">
                    <a href="<?php the_permalink(); ?>"><?php the_post_thumbnail(); ?></a>
                </div>
                <div class="content">
                    <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
                    <p><?php //the_excerpt(); ?></p>
                    <div class="related-stats-info">
                        <ul>
                            <!-- <li><?php //the_author(); ?></li> -->
                            <li><i class="fa fa-clock-o"></i> <?php the_date('Y-m-d') ?></li>
                            <li><i class="fa fa-comments"></i> <?php comments_number( '0 comments', '1 comment', '% comments' ); ?></li>
                        </ul>
                    </div>
                </div>
            </div>
        <?php endwhile; ?>
        <div class="clearboth"></div>
<?php
endif;
$wp_query = null;
$wp_query = $original_query;
wp_reset_postdata();

1 个答案:

答案 0 :(得分:2)

你需要获得post slug,所以首先我会阅读该评论并确认你获得了slug。尝试做一个var_dump($ slug);出口;在slug变量之后,验证你有正确的值。一旦你做了,试试这个:

// Get the slug (This is assuming you 
// have the current post in a $post 
// variable. Otherwise, load the post 
// with the post ID like so:
// $post = get_post( $post_id );
$slug = $post->post_name;

// Build args array for query, replacing hyphens with nothing on the slug.
$args = array('tag' => str_replace('-', '', $slug));

// Set wp_query with tag args
$wp_query = new WP_Query( $args );

// If we get result posts from our query...
if ( have_posts() ) :?>
    <?php while (have_posts()) : the_post(); ?>
        <div class="small-12 medium-6 columns content-excerpt">
            <div class="thumbnail medium-6 columns nopm">
                <a href="<?php the_permalink(); ?>"><?php the_post_thumbnail(); ?></a>
            </div>
            <div class="content">
                <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
                <p><?php //the_excerpt(); ?></p>
                <div class="related-stats-info">
                    <ul>
                        <!-- <li><?php //the_author(); ?></li> -->
                        <li><i class="fa fa-clock-o"></i> <?php the_date('Y-m-d') ?></li>
                        <li><i class="fa fa-comments"></i> <?php comments_number( '0 comments', '1 comment', '% comments' ); ?></li>
                    </ul>
                </div>
            </div>
        </div>
    <?php endwhile; ?>
    <div class="clearboth"></div>
<?php endif; ?>
<?php 
// Reset wordpress...
wp_reset_query();
wp_reset_postdata();