サポート » 使い方全般 » wp_body_openの使い方

  • 解決済 ruri528002

    (@ruri528002)


    wp_body_openの使い方について教えてほしいです。

    ’wp_body_open()は<body>タグの直後に挿入したいタグを出力してくれます’
    ということらしいのですが、ちょっと意味がわかりません

    例えば下記のように書かれている場合、どのようなことになるのでしょう?
    そもそも<body>タグのすぐ後に書いているのでどういうことなのかがわかりません

    `<body
    <?php body_class(); ?>
    <?php neve_body_attrs(); ?> >
    <?php wp_body_open(); ?>

    参考にしたサイト
    https://elearn.jp/wpman/function/wp_body_open.html

    よろしくお願いいたします

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • こんにちは

    wp_body_open関数の定義は以下のとおりです。

    function wp_body_open() {
    	do_action( 'wp_body_open' );
    }

    (コメント省略)

    wp_body_openアクションフックを使って出力されるものがあれば、<body>タグの後ろになにがしか出力されます。
    WordPress コアもバージョンによってこのアクションフックを使っていますので、いろいろと出力される場合があります。

    こんにちは。

    wp_body_open()は、@munyaguさんが書かれている通り、wp_body_open というアクションフックを実行しているラッパー関数に過ぎません。
    なので、理論的にはbody開始タグ直後に限らず、テーマのどの箇所にも定義する事が出来ます。

    ただし、このフックはbody開始タグの直後にコードを注入する目的で作られた関数であり、body開始タグの直後で発火する事を期待してフックされます。

    もしbody開始タグ直後以外に記述した場合、WordPressコアやプラグインの機能が正しく動作しなくなる可能性があります。

    なので、この関数が何かしらのタグを直接出力してくれるというわけでは無く、「body開始タグの直後に記述すべき」という意味が近いのではないかと思います。

    こんにちは、

    wp_body_open()の使い道についてですが、この関数は、ブロックテーマでも、クラッシックテーマにも配置されているので、デバッグをする時、たまに使います。

    関数が、ドーンとあるのが嫌いであれば、以下のような書き方でもいいと思います。

    
    <body id="<?php echo esc_attr( emulsion_slug() ); ?>" <?php body_class(); ?>>
        <?php has_action( 'wp_body_open' ) ? do_action( 'wp_body_open' ) : '';?>
    
    トピック投稿者 ruri528002

    (@ruri528002)

    皆さま、とても丁寧な説明ありがとうございます!
    すごく勉強になります!

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「wp_body_openの使い方」には新たに返信することはできません。