我尝试在WordPress中创建一个主题,并允许用户使用某些页面模板,在标题中加载幻灯片或显示标题。
让我们说,我有一个名为Portfolio的模板名称和另一个名为Portfolio with Slide-show In Head的页面模板。
我可以在portfolio.php
和portfolio-with-slide.php
内发送header.php
中的变量以决定要显示的内容,还是让我为第二个选项创建第二个标头使用get_header('title')
和get_header('slide')
最好的方法是什么?
答案 0 :(得分:2)
我个人使用第二个选项 - 为第二个选项创建第二个标题,然后将需要它的标题加载到包含get_header('title')
和get_header('slide')
的模板文件中。
就代码可维护性而言,这是最好的方法。
答案 1 :(得分:2)
正确的解决方案是编写一个过滤器来替换标题:
function this_is_the_title_now( $title ) {
// can return un-altered $title or can use fancy logic here
return( "This is the new title." );
}
add_filter( 'the_title', 'this_is_the_title_now', 10, 2 );
这可以放在你主题的functions.php中,也可以放在page-whatever.php中。
答案 2 :(得分:0)
因为 wordpress 5.5 get_header
已准备好使用 $args
参数:
https://developer.wordpress.org/reference/functions/get_header/
您可以像这样将参数放入 get_header
中:
get_header( 'yourheadername', [ 'header_arg' => 'XYZ' ] );
(如果您使用的是自定义的 header.php 文件,在本例中为:header-yourheadername.php
)
或默认 header.php 文件:
get_header( null, [ 'header_arg' => 'XYZ' ] );
然后在你的头文件中你可以使用:
<?php echo $args['header_arg']; ?>
在 if
内或任何你想要的 :-)
答案 3 :(得分:0)
您可以使用 set_query_var
将变量发送到您的 header.php 文件或任何模板部件文件。
例如,在您的作品集幻灯片模板 (portfolio-with-slide.php
) 文件中:
//portfolio-with-slide.php
set_query_var('includeSlideshow', true);
然后在您的 header.php
文件(或模板部件文件)中:
//Header.php
$slideshowHeader = get_query_var('includeSlideShow');
//If variable exists and is boolean true
if($slideshowHeader !== null && $slideshowHeader === true) {
//code to include slideshow in header
}