0

WordPressでテーマを作成し、一部のページテンプレートのユーザーがヘッダーにスライドショーをロードするか、タイトルを表示できるようにします。

たとえば、Portfolioというテンプレート名と、Slide-showInHeadを使用したPortfolioという別のページテンプレートがあるとします。

portfolio.phpと内からportfolio-with-slide.php変数を送信してheader.php何を表示するかを決定することはできますか、または2番目のオプションの2番目のヘッダーを作成し、必要なヘッダーをテンプレートファイルにロードする必要がありますかget_header('title')get_header('slide')

最善のアプローチは何ですか?

4

4 に答える 4

2

私は個人的に2番目のオプションを使用します-2番目のオプションの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

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 に答える
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
}
于 2021-04-03T21:29:20.120 に答える