以ACF为主题的灵活内容

时间:2018-06-08 作者:mogio

我来自Drupal 8,在那里我习惯于为每个实体(数据块)创建模板文件。据我所知,在WP中,每个页面模板都会通过(页面/帖子)tpl文件本身中的代码对其进行主题化,从而关注自己的内容。

我相信一定有更好的方法来主题化“ACF Flexible Field”,而不是将我的模板代码复制到可能输出字段的每一页tpl中。

我可以定义“一个”tpl文件来代替每个输出吗?

有什么东西吗?或者我可以创建inc来处理这个领域?我知道把所有的代码放进每一页tpl会很容易。。。但它也是非常静态的,并且会产生双重代码。

3 个回复
最合适的回答,由SO网友:Krzysiek Dróżdż 整理而成

为了补充之前的答案,您不仅可以使用get_template_part, 但也要使用它的第二个参数,并将其与ACFs相结合get_row_layout.

假设模板中的某个地方是:

<?php while ( have_posts() ) : the_post(); ?>
<article>
    ... SOME CODE

    <?php while ( have_rows( \'YOUR_FIELD_NAME\' ) ) : the_row(); ?>
    ... HERE SHOULD GO THE CODE FOR ACF FIELD
    <?php endwhile; ?>

    ... SOME OTHER CODE
</article>
<?php endwhile; ?>
您可以将其更改为:

<?php while ( have_posts() ) : the_post(); ?>
<article>
    ... SOME CODE

    <?php
        while ( have_rows( \'YOUR_FIELD_NAME\' ) ) :
            the_row();
            get_template_part( \'block\', get_row_layout() );

        endwhile;
    ?>

    ... SOME OTHER CODE
</article>
<?php endwhile; ?>
然后,您可以创建名为的自定义模板:block.php (将用作后备),block-layout_1.php (它将用于名为“layout\\u 1”的布局,依此类推。

SO网友:Florian

您可以通过以下方式包括模板部分get_template_part(). 可以通过将变量传递给模板零件set_query_var().

SO网友:cjbj

WordPress允许您将模板文件分割成块,然后可以使用get_template_part. 因此,您可以将ACF字段的模板隔离在一个单独的文件中,并从任何其他模板调用该文件。

但要注意,不能直接将变量从主模板传递到模板部件there are bypasses.

结束

相关推荐

Custom templates folder

我创建了一个自定义文件夹(“/模板”),并将所有模板文件放在该文件夹中。而不是root(“/wp-content/themes/my-theme/”)。它工作得很好。我是否必须添加一些功能来指示“/模板/”文件夹作为我的模板文件夹?通常你把它们放在根上,对吗?现在一切正常,但我只是想知道是否有什么我必须做的。我找不到有关wordpress codex的任何信息。我刚刚安装了WPML,现在所有的模板页面都是404。我想知道它(自定义模板文件夹位置)是否会导致404页。因为吴宇森的商业页面显示良好。wc不在我