0

我尝试在 WordPress 中创建一个主题,并允许用户使用一些页面模板,在标题中加载幻灯片或显示标题。

可以说,我有一个名为 Portfolio 的模板名称和另一个名为 Portfolio 的页面模板,其中包含幻灯片放映。

我可以从portfolio.phpandportfolio-with-slide.php中发送变量header.php以确定要显示的内容,还是让我为第二个选项创建第二个标头并将需要的标头加载到模板文件get_header('title')get_header('slide')

最好的方法是什么?

4

4 回答 4

2

我个人使用第二个选项 - 为第二个选项创建第二个标头,然后使用 和 将需要的标头加载到模板文件get_header('title')get_header('slide')。这是代码可维护性方面的最佳方法。

于 2012-05-29T14:18:55.847 回答
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 中。

于 2012-05-29T14:23:30.483 回答
0

You can use set_query_var to send variables to your header.php file, or any template part file.

For example, in your Portfolio Slideshow template (portfolio-with-slide.php) file:

//portfolio-with-slide.php 
set_query_var('includeSlideshow', true); 

Then in your header.php file (or a template part file):

//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
}
于 2021-04-03T21:29:20.120 回答
0

由于 wordpress 5.5get_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或任何你想要的:-)

于 2021-01-18T11:33:31.000 回答