这是我为我的主要社区页面创建的模板,它将链接到网站上的所有其他社区。你可能会问我为什么不做一个下拉导航?太多的社区无法容纳。
我认为我所做的是在页面上动态调用此自定义帖子类型的所有帖子,以便将来可以添加新的社区。
我最失败的是找到了一种将新邻居添加到列表中并从后端对其进行排序的方法,因此我不得不按字母降序添加我的邻居。这意味着,如果我尝试从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,一旦我进入一个特定的社区,我就可以单击自定义子菜单(通过外观>菜单面板控制)中的“地点”链接,并被带到该社区中的一个地点列表,该列表也将有自己的模板呈现其外观(但它看起来就像邻里关系模板)。
有一点可以肯定,我知道我不会为我要创建的每个地方创建页面(并为它们分配模板)。