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