获取模板部分 - 如果不在同一文件中则不起作用

时间:2016-12-01 13:21:21

标签: php html wordpress

这是与 WordPress 获取模板部件相关的问题。

我已将page.phpsingle.php设置为get_template_part,因此可以轻松编辑未来的模板。

但是,我注意到当它们位于两个不同的文件中时,其中两个不起作用。它们只有在同一个文件中才有效。

这是我的page.php:

<?php get_template_part( 'toppbilde', 'mal' ); ?>

<article>
<?php get_template_part( 'ingress', 'm' ); ?>

<?php get_template_part( 'body', 'm' ); ?>
</article>

toppbilde-mal.php是精选图片。这很有效。

ingress-m.php 是更多标记之前的文字。它具有以下代码:

<div class="clearfix">
    <div class="holder color1 whitetext centertext">
        <div class="container">
            <div class="row">
                <div class="col-md-1"></div>
                <div class="col-md-10">
                    <h1 class="littluft" id="post-<?php the_ID(); ?>"><?php the_title(); ?></h1>
                    <div class="littluft">
                        <?php 
                            // Fetch post content
                            $content = get_post_field( 'post_content', get_the_ID() );

                            $content = apply_filters('the_content', $content);

                            // Get content parts
                            $content_parts = get_extended( $content );

                            // Output part before <!--more--> tag
                            echo $content_parts['main'];
                        ?> 
                    </div>
                </div>
                <div class="col-md-1"></div>
            </div>
        </div>
    </div>
</div>

body-m.php 是更多标记之后的文字。它具有以下代码:

<?php if (!empty($content_parts['extended'])) { ?>
    <div class="clearfix">
        <div class="holder white color1text">
            <div class="container">
                <div class="row">
                    <div class="col-md-1"></div>
                    <div class="col-md-10">
                        <div>
                            <?php echo $content_parts['extended']; ?>
                        </div>
                    </div>
                    <div class="col-md-1"></div>
                </div>
            </div>
        </div>
    </div>
<?php } ?>

使用page.php上面的代码时,get_template_part('body', 'm')不起作用。它没有任何表现。但是,get_template_part('ingress', 'm')有效。

工作时......

...上面的代码已更改,并且未使用get_template_part。意味着所有代码都在page.php

所以,......

get_template_part('body', 'm')get_template_part( 'ingress', 'm')不能位于两个单独的文件中。

任何想法为什么?以及如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

有时候它有助于阅读我自己的问题。

问题是抓取接收内容部分没有保存在文件中。

所以我需要做的就是在body-m.php的开头写下以下内容:

<?php
// Fetch post content
    $content = get_post_field( 'post_content', get_the_ID() );

    $content = apply_filters('the_content', $content);

    // Get content parts
    $content_parts = get_extended( $content );
?>

这解决了这个问题。