私はCSSとJSのコンパイラに取り組んでおり、wp_head()
の内容をリストする方法を見つける必要があります
すべてのCSS/JSファイルのリストとインラインCSSを任意のページに表示しようとしています。
Wp_headアクションをフックしても何も起こりません
私はこのようなものがうまくいくことを願っていました
function head_content($list){
print_r($list);
}
add_action('wp_head', 'head_content');
任意の助けは大歓迎です。
_更新_ :
何かうまくいった
function head_content($list){
print_r($list);
return $list;
}
add_filter('print_styles_array', 'head_content');
add_filter('print_script_array', 'head_content');
これはすべてのcss/jsファイルハンドルをリストします
ヘッダを検索して置換したいのですが、@ majickと@Samuel Elhのどちらの回答も私に直接働きませんでした。それで、彼らの答えを組み合わせることで私は結局うまくいくものを得ました:
function start_wp_head_buffer() {
ob_start();
}
add_action('wp_head','start_wp_head_buffer',0);
function end_wp_head_buffer() {
$in = ob_get_clean();
// here do whatever you want with the header code
echo $in; // output the result unless you want to remove it
}
add_action('wp_head','end_wp_head_buffer', PHP_INT_MAX); //PHP_INT_MAX will ensure this action is called after all other actions that can modify head
それは私の子供のテーマのfunctions.php
に追加されました。
簡単な解決策は、WordPressがwp_head()
関数のwp-includes/general-template.php
で行うのと同じように、カスタム関数で wp_head を監視することです。
私は何かを意味します:
function head_content() {
ob_start();
do_action('wp_head');
return ob_get_clean();
}
// contents
var_dump( head_content() );
後で、正規表現または他のツールを使用して、ターゲットにしているコンテンツをフィルタします。
それが役立つことを願っています。
ラッパーアクションを追加することで、wp_head
出力をバッファリングできます。
add_action('wp_head','start_wp_head_buffer',0);
function start_wp_head_buffer() {ob_start;}
add_action('wp_head','end_wp_head_buffer',99);
function end_wp_head_buffer() {global $wpheadcontents; $wpheadcontents = ob_get_flush();}
その後、他の場所でglobal $wpheadcontents;
を呼び出してコンテンツにアクセスし、それを処理することができます。
ただし、この場合は、探している情報をグローバルの$wp_styles
および$wp_scripts
変数から直接取得するほうが簡単です。
add_action('wp_enqueue_scripts','print_global_arrays',999);
global $wp_styles, $wp_scripts;
echo "Styles Array:"; print_r($wp_styles);
echo "Scripts Array:"; print_r($wp_scripts);
}