web-dev-qa-db-ja.com

<body>タグの直後にHTMLを挿入

私はWordpressのテーマTwenty Twelve(正確に言うとその子)を使用しています。

本文を開いた直後に、functions.phpに、header.phpを使用しないで、HTMLを挿入する方法を知りたいです。

それは可能ですか?

6
Ramanan

Twenty Twelveには、開始<body>タグの直後に起動するフックはありません。

したがって、あなたはあなたの親テーマであるTwenty 12を拡張するあなたの子供のテーマで、あなたの子供のテーマディレクトリに渡ってheader.phpをコピーしてください。

あなたの子テーマでheader.phpファイルを開き、開始bodyタグの直後にアクションフックを追加し、それをfunctions.phpファイル経由でフックすることができます。

例えばtwenty-twelve-child/header.phpファイルでは:

<body <?php body_class(); ?>>

<?php do_action('after_body_open_tag'); ?>

それであなたのtwenty-twelve-child/functions.phpファイルで:

function custom_content_after_body_open_tag() {

    ?>

    <div>My Custom Content</div>

    <?php

}

add_action('after_body_open_tag', 'custom_content_after_body_open_tag');

これはHTMLに次のようにレンダリングされます。

<body>
<div>My Custom Content</div>

おすすめ読書:

https://developer.wordpress.org/reference/functions/do_action/

12
userabuser

非常に、非常に、非常に汚れた解決策は次のようになります。

/* Insert tracking code or other stuff directly after BODY opens */
add_filter('body_class', 'wps_add_tracking_body', PHP_INT_MAX); // make sure, that's the last filter in the queue
function wps_add_tracking_body($classes) {

  // close <body> tag, insert stuff, open some other tag with senseless variable      
  $classes[] = '"><script> /* do whatever */ </script><noscript></noscript novar="';

  return $classes;
}

このコードをfunctions.phpに追加してください。

function my_function() {
 echo'<div id="from_my_function"></div>';

}
add_action('wp_head', 'my_function');
0
Jatinder Kaur