web-dev-qa-db-ja.com

グローバル変数の場所

私は今Wordpressを使用して私達の会社のサイトの管理者です。ホームページでいくつかのことを変更したいのですが、残念ながら変更したい項目はテーマに組み込まれているようです。画像スライダーのテキストオーバーレイを変更したいです。テキストを表示するHTMLを見つけましたが、実際のテキストはPHP変数からエコーされています。誰かが変数を追跡する方法を知っていますか?それは元のサイトデザイナーによって作られていなければなりませんでした。基本的に、私はどこに興味があります:<h1><? echo the_title();?></h1>は情報を引き出しています。スライドによって変化するので、これはタイトルの配列から引き出す必要があります。配列内のそれらの項目のうち1つを変更する必要があります。うまくいけば、コードはpage-templates/front-page.phpから来ています。

1
zfollette

子供のテーマ

テーマのpage-templates/front-page.phpを変更するWordPress Wayは、 子テーマ を作成してから、このファイルを子のテーマを変更してください。親テーマのファイルの代わりに、変更したテンプレートファイルが読み込まれます。

これにより、テンプレートへの変更を失わずに親テーマを更新できます。ここでの唯一の本当の欠点は、あなたの子テーマのコピーされたテンプレートが親テーマのfront-page.phpに行われたどんな更新も反映しないということです。そのため、親テーマの対応するファイルが変更された場合は、変更したテンプレートを手動で更新する必要があります。変更したい親テーマのテンプレートのみを複製することをお勧めします。これにより、メンテナンスの負担を最小限に抑えることができます。

タイトル()

the_title()のしくみは、WordPressループの中です。

if ( have_posts() ) {
    while ( have_posts() ) {
        the_post(); ?>

        <h1><? the_title(); ?></h1>

        <?php
        // ...
    }
} else {
    // no posts
}

the_title()はループ内の現在の投稿のタイトルをエコーし​​ます。出力は自動的にエコーされるため、echo the_title();は正しくありません。出力を自動的にエコーしない同様の関数、 get_the_title() があります。

the_title()はグローバル$post変数を使用しています。これはthe_post()を使用してループ内の各反復に対して設定されます。一般的に、これはループ内でthe_post()が呼び出されたときに起きていることです。

the_post() --> 

WP_Query::the_post(); --> 

global $post;
$post = WP_Query::next_post();
WP_Query::setup_postdata( $post ); -->

$post = get_post( $post );

the_title()$post->post_titleをつかんでいるget_the_title()を使っています。これはループ内の現在の投稿のタイトルです。

グローバル変数コーデックスページ には、WordPressで使用されるグローバル変数の(部分的な)リストがあります。

2
Dave Romsey