【问题标题】:Wordpress display custom posts based on category_nameWordpress 根据 category_name 显示自定义帖子
【发布时间】:2015-11-27 14:46:40
【问题描述】:

我正在尝试根据使用 ACF 在输入字段中写入的类别,使用来自自定义帖子类型(实际上是割草机)的产品创建缩略图方法。

但是,即使在对我的类别进行硬编码时,我目前也无法展示任何帖子。

$loop = new WP_Query( array( 'category_name' => 'frontmower', 'posts_per_page' => 10 ) ); 

割草机是在“产品”和“机器”下的 2 个步骤中找到的子类别。

<div class="thumbContainer">
<?php while ( $loop->have_posts() ) : $loop->the_post(); ?>
        <?php echo '<a href="' . get_permalink() . '" title="' . the_title_attribute( 'echo=0' ) . '" rel="bookmark">'; ?>
    <div class="productThumbnail">
        <img src="<?php the_field( "productImage" ); ?>" alt="image"/>
        <?php the_title( '<h2 class="entry-title">', '</h2>' ); ?>

            <div class="entry-content">
                <?php the_content(); ?>
            </div>
    </div>
    <?php echo '</a>'; ?>
<?php endwhile; ?>
</div>

无论出于何种原因,我都无法理解为什么它不起作用。尝试不同的 echo 来确定我的脚本是否进入了 while 循环,但它没有!

但是,这个工作得很好:

$loop = new WP_Query( array( 'post_type' => 'ridinglawnmowers', 'posts_per_page' => 10 ) ); 

但我不能使用 post_type,因为我需要创建无数不同的帖子类型。将它们都算作割草机并为它们提供类别是要走的路。

【问题讨论】:

  • 您创建的自定义类别叫什么?另外,我建议将您的 post_type 添加到查询参数中并使用 codex.wordpress.org/Template_Tags/get_posts 而不是弄乱 WP_Query - 它更安全:)
  • 我正在使用一个名为“割草机”的自定义 post_type,普通的 wordpress 帖子类别称为“frontmower”和“backmower”。目前调用这些类别没有任何意义,我不确定为什么。我将使用类别名称编辑问题以使其清楚。

标签: php wordpress categories custom-post-type


【解决方案1】:

要访问基于特定类别的所有帖子,请使用以下代码 -

<?php 
 $catPost = get_posts(get_cat_ID("NameOfTheCategory")); //change this
   foreach ($catPost as $post) : setup_postdata($post); ?>
       <div>
             <h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2> 
             <p><?php the_content(); ?></p>
       </div>
<?php  endforeach;?>

【讨论】:

  • 感谢 WisdmLabs,代码很简单。不幸的是,它只给了我我的“Hello World...”第一个 WP 帖子,它甚至不在我添加的类别中,而不是 NameofTheCategory(前割草机),所以它不应该显示。代码是否出于某种原因忽略了我的自定义帖子类型,并显示我的正常帖子,即使不在正确的类别中? (将自定义帖子类型添加到“无组织”的测试不会只显示它们。只有“Hello world..”和普通帖子会出现)。
  • $cat_id = get_cat_ID('我的类别'); //类别名称 $args=array( 'cat' => $cat_id, 'post_type' => 'custom_post_type_name', 'post_status' => 'publish', 'posts_per_page' => -1, 'caller_get_posts'=> 1 ); $new = new WP_Query($args);
  • 优秀;我将使用 2 个变量而不是 1 个变量(1 个用于设置类别,1 个用于设置自定义帖子类型名称)——这很好。现在可以了。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-29
  • 2015-01-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多