私のクライアントは、訪問者を追跡するために特定のページに独自のJavaScriptブロックを追加する必要があります。どうやってこれをやるの?
最初はカスタムフィールドを使用しようとしましたが、フィールドがページに出力される前にすべて削除されたため、空の結果が得られました。それから私はあなたがあなたのページにコードを追加してそれをテンプレートで呼び出すことを可能にするAdvanced Custom Fields拡張をインストールしました、しかしそれはトラッキングコードを壊すスクリプトタグの中にコードを置く。
だから私は今ちょっと迷っています。
条件付きタグを使用してください。
5番目のパラメータを変更してフッターに読み込みます。
親テーマで使用するには、get_stylesheet_directory_uri()
をget_template_directory_uri()
に変更します。
add_action( 'wp_enqueue_scripts', 'add_tracking_scripts' );
function add_tracking_scripts() {
if ( is_page('slug') ) {
wp_register_script(
'tracking-script',
get_stylesheet_directory_uri() . '/tracking-script.js',
false,
'1.0',
true
);
wp_enqueue_script( 'tracking-script' );
}
}
出典 http://codex.wordpress.org/Function_Reference/wp_enqueue_script
あなたはそれをページのフッターに入れるために条件文を使うことができます。適切なページのID番号を探し、それからAppearance> Editorに行き、テーマfooter.phpを編集してください。
<?php
if (is_page ('XX')) { ?>
// tracking code here for page XX
<?php
} elseif (is_page ('YY')) { ?>
// tracking code for another page YY
<?php
}
?>
等.
あなたは前に正しい軌道に乗っていました。メタボックスを投稿/ページ/カスタム投稿タイプに追加する方法は任意ですが、Advanced Custom Fieldsはこれに最適です。
テキストエリアメタボックスを追加して、トラッキングコードを挿入します。 ACFを使用している場合は、必ず「フォーマット」フィールドを「フォーマットなし」に設定してください。
あなたのテーマでは、あなたは単にあなたのヘッダ/フッタに小さな条件付きコードを書くことができます:
<html>
<head>
<!-- all your header code -->
<?php if($code_to_insert = get_field('your_field_name_in_ACF')) { ?>
<?php echo $code_to_insert; ?>
<?php }; ?>
</head>
コードにタグを含めるようにしてください。ページにメタボックス内の何かが含まれている場合にのみ、ページにコードを配置する必要があります。もちろん - これはあなたが何を挿入しているかを正当性をチェックすることではありません。そしてもし誰かがそこに悪いコードを差し込むとこれはあなたのページを壊すかもしれません。 :)
より良い方法は、関数を作成し、その関数をテンプレートに含め、それを有効にするためにメタデータ(カスタムフィールド)を使用することです。しかし、それはもう少し作業です。あなたがACFを使っているなら、上で説明したことはとても簡単です。
がんばろう!