如何查询具体的自定义帖子类型的内容?

时间:2013-09-24 作者:MARS

我已经创建了一个名为“Single Neighbor”的自定义帖子类型,其中有5个自定义字段:

背景色(颜色选择器)

  • 背景图像(图像上传)
  • 最新新闻(WYSIWYG编辑器列出新闻的外部链接)
  • 本地事件(WYSIWYG显示其他RSS提要)
  • 列表(WYSIWYG编写自定义段落)
  • 分类菜单(选择自定义邻居,如“Adams Morgan”)
    1. 所有这些字段都将位于不同的div中在整个模板页面中,最好只在“while”循环中插入所有div并只使用on循环,还是多个循环更好?

      最后,如何在查询中引用分类法?我的意思是,我对27个社区使用相同的单一社区模板,但我不能在模板中只引用一个分类法,因为这样它只会提取该社区的内容,WordPress是否有一种动态方式,通过使用用户来自哪个链接来知道要从哪个社区提取什么内容?

      我已经处理这个问题4天了,我似乎不知道该采取什么样的最佳方法。

      完成这样的任务是否需要自定义函数和循环中的条件才能完成?

      例如,如果有人制作了一个房地产网站或具有该网站的“邻居>邻居>地方>地方>子页面”层次结构的网站,该网站需要(在每个页面的相同位置)特定页面的自定义内容,请提供建议。

      谢谢

    2 个回复
    最合适的回答,由SO网友:MARS 整理而成

    这是我为我的主要社区页面创建的模板,它将链接到网站上的所有其他社区。你可能会问我为什么不做一个下拉导航?太多的社区无法容纳。

    我认为我所做的是在页面上动态调用此自定义帖子类型的所有帖子,以便将来可以添加新的社区。

    我最失败的是找到了一种将新邻居添加到列表中并从后端对其进行排序的方法,因此我不得不按字母降序添加我的邻居。这意味着,如果我尝试从A-Z社区输入新社区,在模板页面中,带“A”的社区将位于列表底部,带“Z”的社区将位于顶部(我尝试了order=ASC),但没有效果,也不知道为什么。

    不用说,我是按相反的字母顺序进入我的社区的,我知道,我的能力很弱。但是,嘿,它起作用了!

    <?php
    
    /*
    
      Template Name: Neighborhoods Main Page
    
    */
    
    get_header( \'internal\' );?>
    
    <div class="container-space"></div>
    
    <div class="container-main">
    
    <?php
    
      $args = array(
        \'post_type\' => \'neighborhood\'
      );
    
      $the_query = new WP_Query( $args );
    
    ?>
    
      <ol class="col-neigh-title neighborhood">
    
      <?php if ( have_posts() ) : while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
    
        <li><a href="<?php the_permalink(); ?>"><?php the_field( \'neighborhood_name\' ); ?></a></li>
    
      <?php endwhile; else: ?>
    
      </ol>
    
      <p>There are no posts or pages here.</p>
    
    <?php endif; ?>
    
    </div>
    
    <?php get_footer(); ?>
    
    然后在我的一个街区。php页面我是这样做的:

    <?php get_header( \'neighborhood\' );?>
    
        <?php
    
        $bg = get_field( \'bg_img\' );
    
        ?>
    
      <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
    
        <div class="bg-img-default" style="background-image: url(<?=$bg?>); "></div>
    
        <div class="container-main">
    
          <!--COL 1-->
    
          <div class="col-block">
    
            <h2><span class="bold">latest</span> <span class="font-condensed">news</span></h2>
    
            <?php the_field( \'latest_news\' ); ?>
    
          </div>
    
          <!--COL 2-->
    
          <div class="col-block">
    
            <h2><span class="bold">local</span> <span class="font-condensed">events</span></h2>
    
            <?php the_field( \'local_events\' ); ?>
    
          </div>
    
          <!--COL 3-->
    
          <div class="col-block-last">
    
            <h2><span class="bold">listings</span></h2>
    
            <?php the_field( \'listings\' ); ?>
    
            <a href="/search-listings/">Search Listings</a>
    
          </div>
    
      <?php endwhile; endif; ?>
    
      <?php get_template_part( \'content\', \'slider\' ); ?>
    
        </div>
    
    <?php get_footer(); ?>
    
    noobs注意:我最初的错误是,我假设单一类型的帖子(任何类别真正的“邻里”、“城市”、“汽车”、“操作系统”)也需要作为模板,并且我必须为每个邻里创建一个“页面”(在我的情况下),给它分配一个模板,以不同的方式呈现页面,然后从我的主要社区页面链接到该页面。我知道,如果希望它知道如何从帖子类型中获取自定义内容,那是非常愚蠢的。

    至少在我的理解中,另一个突破是,您可以在一个自定义帖子类型中添加与某个社区相关的所有字段,并从不同的模板调用它们。也就是说,在我的例子中,“Name”、“Background Image”、“Background Color”、“Content column1”、“Content Col2”等都可以从一个位置从后端的用户处输入,但您可以在不同的模板中调用该内容的不同部分。因此,在上面的示例中,我为一个页面(链接到单个邻居)调用了“Neighbory\\u name”自定义字段,然后剩余的内容包含在单个邻居页面中。对于这里的许多人来说,这可能是一件不需要动脑筋的事,但当我发现它时,这是我这周的一大亮点。

    WordPress似乎不是这样工作的,而是通过创建一篇文章类型的新文章来创建所有自定义内容,而不是创建一个新页面。这让我意识到,没有必要创建一个可以由单个邻居页面调用的模板,而是一个可以呈现该帖子单一版本的邻居模板,用户可以通过permalink()访问该帖子,然后从帖子中获取其独特内容。顺便说一句,我花了7天时间才弄明白。

    如果有人有更酷更先进的方法,请分享,因为我近期的问题(我写这篇文章时会从这里链接到这个问题)是关于如何创建一个“地点”CPT,一旦我进入一个特定的社区,我就可以单击自定义子菜单(通过外观>菜单面板控制)中的“地点”链接,并被带到该社区中的一个地点列表,该列表也将有自己的模板呈现其外观(但它看起来就像邻里关系模板)。

    有一点可以肯定,我知道我不会为我要创建的每个地方创建页面(并为它们分配模板)。

    SO网友:Thought Space Designs

    在自定义帖子类型的单个页面上,您希望将其与标准帖子单个模板类似。在大多数情况下,您应该将单个模板中的所有内容封装在一个循环中,如下所示:

    <? get_header(); ?>
        <? if(have_posts()): while(have_posts()): the_post(); ?>
    
        <!--Your content goes here-->
    
        <? endwhile; endif; ?>
    <? get_footer(); ?>
    
    就自定义分类法而言,您可能希望查看自定义分类法页面模板:http://codex.wordpress.org/Template_Hierarchy#Custom_Taxonomies_display

    您可以创建类似于分类法邻域的模板。php,然后包括循环和显示每个社区中所有列表所需的所有函数。然后,该模板将自动显示查询到的任何邻居,允许您直接链接到像您的站点这样的页面。com/compton或您的网站。com/布鲁克林。此功能与使用单个页面显示任何房屋的方式非常相似。

    结束

    相关推荐

    如何查询具体的自定义帖子类型的内容? - 小码农CODE - 行之有效找到问题解决它

    如何查询具体的自定义帖子类型的内容?

    时间:2013-09-24 作者:MARS

    我已经创建了一个名为“Single Neighbor”的自定义帖子类型,其中有5个自定义字段:

    背景色(颜色选择器)

  • 背景图像(图像上传)
  • 最新新闻(WYSIWYG编辑器列出新闻的外部链接)
  • 本地事件(WYSIWYG显示其他RSS提要)
  • 列表(WYSIWYG编写自定义段落)
  • 分类菜单(选择自定义邻居,如“Adams Morgan”)
    1. 所有这些字段都将位于不同的div中在整个模板页面中,最好只在“while”循环中插入所有div并只使用on循环,还是多个循环更好?

      最后,如何在查询中引用分类法?我的意思是,我对27个社区使用相同的单一社区模板,但我不能在模板中只引用一个分类法,因为这样它只会提取该社区的内容,WordPress是否有一种动态方式,通过使用用户来自哪个链接来知道要从哪个社区提取什么内容?

      我已经处理这个问题4天了,我似乎不知道该采取什么样的最佳方法。

      完成这样的任务是否需要自定义函数和循环中的条件才能完成?

      例如,如果有人制作了一个房地产网站或具有该网站的“邻居>邻居>地方>地方>子页面”层次结构的网站,该网站需要(在每个页面的相同位置)特定页面的自定义内容,请提供建议。

      谢谢

    2 个回复
    最合适的回答,由SO网友:MARS 整理而成

    这是我为我的主要社区页面创建的模板,它将链接到网站上的所有其他社区。你可能会问我为什么不做一个下拉导航?太多的社区无法容纳。

    我认为我所做的是在页面上动态调用此自定义帖子类型的所有帖子,以便将来可以添加新的社区。

    我最失败的是找到了一种将新邻居添加到列表中并从后端对其进行排序的方法,因此我不得不按字母降序添加我的邻居。这意味着,如果我尝试从A-Z社区输入新社区,在模板页面中,带“A”的社区将位于列表底部,带“Z”的社区将位于顶部(我尝试了order=ASC),但没有效果,也不知道为什么。

    不用说,我是按相反的字母顺序进入我的社区的,我知道,我的能力很弱。但是,嘿,它起作用了!

    <?php
    
    /*
    
      Template Name: Neighborhoods Main Page
    
    */
    
    get_header( \'internal\' );?>
    
    <div class="container-space"></div>
    
    <div class="container-main">
    
    <?php
    
      $args = array(
        \'post_type\' => \'neighborhood\'
      );
    
      $the_query = new WP_Query( $args );
    
    ?>
    
      <ol class="col-neigh-title neighborhood">
    
      <?php if ( have_posts() ) : while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
    
        <li><a href="<?php the_permalink(); ?>"><?php the_field( \'neighborhood_name\' ); ?></a></li>
    
      <?php endwhile; else: ?>
    
      </ol>
    
      <p>There are no posts or pages here.</p>
    
    <?php endif; ?>
    
    </div>
    
    <?php get_footer(); ?>
    
    然后在我的一个街区。php页面我是这样做的:

    <?php get_header( \'neighborhood\' );?>
    
        <?php
    
        $bg = get_field( \'bg_img\' );
    
        ?>
    
      <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
    
        <div class="bg-img-default" style="background-image: url(<?=$bg?>); "></div>
    
        <div class="container-main">
    
          <!--COL 1-->
    
          <div class="col-block">
    
            <h2><span class="bold">latest</span> <span class="font-condensed">news</span></h2>
    
            <?php the_field( \'latest_news\' ); ?>
    
          </div>
    
          <!--COL 2-->
    
          <div class="col-block">
    
            <h2><span class="bold">local</span> <span class="font-condensed">events</span></h2>
    
            <?php the_field( \'local_events\' ); ?>
    
          </div>
    
          <!--COL 3-->
    
          <div class="col-block-last">
    
            <h2><span class="bold">listings</span></h2>
    
            <?php the_field( \'listings\' ); ?>
    
            <a href="/search-listings/">Search Listings</a>
    
          </div>
    
      <?php endwhile; endif; ?>
    
      <?php get_template_part( \'content\', \'slider\' ); ?>
    
        </div>
    
    <?php get_footer(); ?>
    
    noobs注意:我最初的错误是,我假设单一类型的帖子(任何类别真正的“邻里”、“城市”、“汽车”、“操作系统”)也需要作为模板,并且我必须为每个邻里创建一个“页面”(在我的情况下),给它分配一个模板,以不同的方式呈现页面,然后从我的主要社区页面链接到该页面。我知道,如果希望它知道如何从帖子类型中获取自定义内容,那是非常愚蠢的。

    至少在我的理解中,另一个突破是,您可以在一个自定义帖子类型中添加与某个社区相关的所有字段,并从不同的模板调用它们。也就是说,在我的例子中,“Name”、“Background Image”、“Background Color”、“Content column1”、“Content Col2”等都可以从一个位置从后端的用户处输入,但您可以在不同的模板中调用该内容的不同部分。因此,在上面的示例中,我为一个页面(链接到单个邻居)调用了“Neighbory\\u name”自定义字段,然后剩余的内容包含在单个邻居页面中。对于这里的许多人来说,这可能是一件不需要动脑筋的事,但当我发现它时,这是我这周的一大亮点。

    WordPress似乎不是这样工作的,而是通过创建一篇文章类型的新文章来创建所有自定义内容,而不是创建一个新页面。这让我意识到,没有必要创建一个可以由单个邻居页面调用的模板,而是一个可以呈现该帖子单一版本的邻居模板,用户可以通过permalink()访问该帖子,然后从帖子中获取其独特内容。顺便说一句,我花了7天时间才弄明白。

    如果有人有更酷更先进的方法,请分享,因为我近期的问题(我写这篇文章时会从这里链接到这个问题)是关于如何创建一个“地点”CPT,一旦我进入一个特定的社区,我就可以单击自定义子菜单(通过外观>菜单面板控制)中的“地点”链接,并被带到该社区中的一个地点列表,该列表也将有自己的模板呈现其外观(但它看起来就像邻里关系模板)。

    有一点可以肯定,我知道我不会为我要创建的每个地方创建页面(并为它们分配模板)。

    SO网友:Thought Space Designs

    在自定义帖子类型的单个页面上,您希望将其与标准帖子单个模板类似。在大多数情况下,您应该将单个模板中的所有内容封装在一个循环中,如下所示:

    <? get_header(); ?>
        <? if(have_posts()): while(have_posts()): the_post(); ?>
    
        <!--Your content goes here-->
    
        <? endwhile; endif; ?>
    <? get_footer(); ?>
    
    就自定义分类法而言,您可能希望查看自定义分类法页面模板:http://codex.wordpress.org/Template_Hierarchy#Custom_Taxonomies_display

    您可以创建类似于分类法邻域的模板。php,然后包括循环和显示每个社区中所有列表所需的所有函数。然后,该模板将自动显示查询到的任何邻居,允许您直接链接到像您的站点这样的页面。com/compton或您的网站。com/布鲁克林。此功能与使用单个页面显示任何房屋的方式非常相似。

    相关推荐