WordPress在内容挂钩和外部模板部件之后

时间:2017-01-08 作者:Dr.Hariri

我正在努力use this method 包括模板部分(HTML代码),而不是使用一些纯文本。当我使用文本时,它会使用内容过滤器在内容下方正确显示。但是,如果我尝试获取\\u template\\u部分,则内容将显示在Wordpress帖子的顶部,而不是内容的下方。

有没有更好的方法可以将模板部分连接到Wordpress中单个内容的前后?

下面是我正在尝试使用过滤器的代码:

function educadme_book_fields_content_hook( $content ) {    
if( is_singular(\'books\') ) {            
$beforecontent = \'\';
$aftercontent = get_template_part( \'parts/book\', \'fields\' );
$fullcontent = $beforecontent . $content . $aftercontent;
return $fullcontent;
}
还尝试了:

$content .= get_template_part( \'parts/book\', \'fields\' );
return $content;
get\\u template\\u部分的所有内容都显示在上面,甚至是标题,而不仅仅是内容,仍然存在相同的问题。谢谢

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

好的,因为get\\u template\\u part和require无法使用,因为它们在内容上方而不是下方重复内容(感谢@benoti),所以我决定使用不同的方法:

ob_start(); ?>
<? global $post; ?>

Long HTML Content with some PHP variables inside to load all the custom fields & style I wanted instead of using an external file which I prepared before.

<?php
$book_fields = ob_get_clean();      
$fullcontent = $content . $book_fields;
return $fullcontent;

SO网友:Benoti

请注意:returnecho 从函数将更改文本位置。

如果你举一个简单的例子:

function test(){
    $the_test = \'test return\';
    echo \'test echo\';
    return $the_test;
}

echo test();
无论回显行位于何处,此行将始终在之前打印echo test(); 因为在return $the_test;

你需要好好玩玩get_template_part 和/或template_redirect 按需要显示内容的操作。

希望您理解我的意思以及与您的问题的关系;-)

相关推荐

Div-Wrap with Functions.php in ChildTheme Using Shorcode!

我只想为一个简单样式的DIV包装器创建一个短代码。在WordPress的网站上,我想添加如下内容:[quotehead]Headline text[/quotehead] ...a normal blockquote from wordpress... 输出应为:<div class=\"block_header\">Headline text</div> 我的内部功能functions.php (在childtheme中)包含以下内容:/**