Ввод содержимого в header.php без использования wp_head

Я создаю плагин. Я должен вывести некоторые вещи в файле header.php темы в зависимости от того, будет ли / else писать. Однако я пока не нахожусь. Я только что узнал, чтобы нажать эту функцию в header.php. Мне нужно использовать wp_head . К сожалению, когда я это делаю, я получаю много дополнительного материала, обработанного WordPress, застрявшего в функции wp_head .

 <meta name='robots' content='noindex,follow' /> <script type="text/javascript"> window._wpemojiSettings = {"baseUrl":"https:\/\/sworg\/images\/core\/emoji\/72x72\/","ext":".png","source":{"concatemoji":"http:\/\/zachis.it\/client\/wgp-master\/wp-includes\/js\/wp-emoji-release.min.js?ver=4.4.2"}}; !function(a,b,c){function d(a){var c,d=b.createElement("canvas"),e=d.getContext&&d.getContext("2d"),f=String.fromCharCode;return e&&e.fillText?(e.textBaseline="top",e.font="600 32px Arial","flag"===a?(e.fillText(f(55356,56806,55356,56826),0,0),d.toDataURL().length>3e3):"diversity"===a?(e.fillText(f(55356,57221),0,0),c=e.getImageData(16,16,1,1).data.toString(),e.fillText(f(55356,57221,55356,57343),0,0),c!==e.getImageData(16,16,1,1).data.toString()):("simple"===a?e.fillText(f(55357,56835),0,0):e.fillText(f(55356,57135),0,0),0!==e.getImageData(16,16,1,1).data[0])):!1}function e(a){var c=b.createElement("script");c.src=a,c.type="text/javascript",b.getElementsByTagName("head")[0].appendChild(c)}var f,g;c.supports={simple:d("simple"),flag:d("flag"),unicode8:d("unicode8"),diversity:d("diversity")},c.DOMReady=!1,c.readyCallback=function(){c.DOMReady=!0},c.supports.simple&&c.supports.flag&&c.supports.unicode8&&c.supports.diversity||(g=function(){c.readyCallback()},b.addEventListener?(b.addEventListener("DOMContentLoaded",g,!1),a.addEventListener("load",g,!1)):(a.attachEvent("onload",g),b.attachEvent("onreadystatechange",function(){"complete"===b.readyState&&c.readyCallback()})),f=c.source||{},f.concatemoji?e(f.concatemoji):f.wpemoji&&f.twemoji&&(e(f.twemoji),e(f.wpemoji)))}(window,document,window._wpemojiSettings); </script> <style type="text/css"> img.wp-smiley, img.emoji { display: inline !important; border: none !important; box-shadow: none !important; height: 1em !important; width: 1em !important; margin: 0 .07em !important; vertical-align: -0.1em !important; background: none !important; padding: 0 !important; } </style> <link rel='stylesheet' id='open-sans-css' href='https://fonts.googleapis.com/css?family=Open+Sans%3A300italic%2C400italic%2C600italic%2C300%2C400%2C600&subset=latin%2Clatin-ext&ver=4.4.2' type='text/css' media='all' /> <link rel='stylesheet' id='dashicons-css' href='http://zachis.it/client/wgp-master/wp-includes/css/dashicons.min.css?ver=4.4.2' type='text/css' media='all' /> <link rel='stylesheet' id='admin-bar-css' href='http://zachis.it/client/wgp-master/wp-includes/css/admin-bar.min.css?ver=4.4.2' type='text/css' media='all' /> <link rel='https://api.w.org/' href='http://zachis.it/client/wgp-master/wp-json/' /> <link rel="EditURI" type="application/rsd+xml" title="RSD" href="http://zachis.it/client/wgp-master/xmlrpc.php?rsd" /> <link rel="wlwmanifest" type="application/wlwmanifest+xml" href="http://zachis.it/client/wgp-master/wp-includes/wlwmanifest.xml" /> <meta name="generator" content="WordPress 4.4.2" /> test<style type="text/css" media="print">#wpadminbar { display:none; }</style> <style type="text/css" media="screen"> html { margin-top: 32px !important; } * html body { margin-top: 32px !important; } @media screen and ( max-width: 782px ) { html { margin-top: 46px !important; } * html body { margin-top: 46px !important; } } </style> в <meta name='robots' content='noindex,follow' /> <script type="text/javascript"> window._wpemojiSettings = {"baseUrl":"https:\/\/sworg\/images\/core\/emoji\/72x72\/","ext":".png","source":{"concatemoji":"http:\/\/zachis.it\/client\/wgp-master\/wp-includes\/js\/wp-emoji-release.min.js?ver=4.4.2"}}; !function(a,b,c){function d(a){var c,d=b.createElement("canvas"),e=d.getContext&&d.getContext("2d"),f=String.fromCharCode;return e&&e.fillText?(e.textBaseline="top",e.font="600 32px Arial","flag"===a?(e.fillText(f(55356,56806,55356,56826),0,0),d.toDataURL().length>3e3):"diversity"===a?(e.fillText(f(55356,57221),0,0),c=e.getImageData(16,16,1,1).data.toString(),e.fillText(f(55356,57221,55356,57343),0,0),c!==e.getImageData(16,16,1,1).data.toString()):("simple"===a?e.fillText(f(55357,56835),0,0):e.fillText(f(55356,57135),0,0),0!==e.getImageData(16,16,1,1).data[0])):!1}function e(a){var c=b.createElement("script");c.src=a,c.type="text/javascript",b.getElementsByTagName("head")[0].appendChild(c)}var f,g;c.supports={simple:d("simple"),flag:d("flag"),unicode8:d("unicode8"),diversity:d("diversity")},c.DOMReady=!1,c.readyCallback=function(){c.DOMReady=!0},c.supports.simple&&c.supports.flag&&c.supports.unicode8&&c.supports.diversity||(g=function(){c.readyCallback()},b.addEventListener?(b.addEventListener("DOMContentLoaded",g,!1),a.addEventListener("load",g,!1)):(a.attachEvent("onload",g),b.attachEvent("onreadystatechange",function(){"complete"===b.readyState&&c.readyCallback()})),f=c.source||{},f.concatemoji?e(f.concatemoji):f.wpemoji&&f.twemoji&&(e(f.twemoji),e(f.wpemoji)))}(window,document,window._wpemojiSettings); </script> <style type="text/css"> img.wp-smiley, img.emoji { display: inline !important; border: none !important; box-shadow: none !important; height: 1em !important; width: 1em !important; margin: 0 .07em !important; vertical-align: -0.1em !important; background: none !important; padding: 0 !important; } </style> <link rel='stylesheet' id='open-sans-css' href='https://fonts.googleapis.com/css?family=Open+Sans%3A300italic%2C400italic%2C600italic%2C300%2C400%2C600&subset=latin%2Clatin-ext&ver=4.4.2' type='text/css' media='all' /> <link rel='stylesheet' id='dashicons-css' href='http://zachis.it/client/wgp-master/wp-includes/css/dashicons.min.css?ver=4.4.2' type='text/css' media='all' /> <link rel='stylesheet' id='admin-bar-css' href='http://zachis.it/client/wgp-master/wp-includes/css/admin-bar.min.css?ver=4.4.2' type='text/css' media='all' /> <link rel='https://api.w.org/' href='http://zachis.it/client/wgp-master/wp-json/' /> <link rel="EditURI" type="application/rsd+xml" title="RSD" href="http://zachis.it/client/wgp-master/xmlrpc.php?rsd" /> <link rel="wlwmanifest" type="application/wlwmanifest+xml" href="http://zachis.it/client/wgp-master/wp-includes/wlwmanifest.xml" /> <meta name="generator" content="WordPress 4.4.2" /> test<style type="text/css" media="print">#wpadminbar { display:none; }</style> <style type="text/css" media="screen"> html { margin-top: 32px !important; } * html body { margin-top: 32px !important; } @media screen and ( max-width: 782px ) { html { margin-top: 46px !important; } * html body { margin-top: 46px !important; } } </style> 

Есть ли другой способ опубликовать переменные из плагина в header.php без использования wp_head ?

Solutions Collecting From Web of "Ввод содержимого в header.php без использования wp_head"

Удаление wp_head будет иметь некоторые отрицательные эффекты, так как это не позволит вам использовать практически 90% плагинов на wordpress.org. Также некоторые из того кода, который вы видите, отображаются только при входе в систему (если только ваша тема специально не добавляет его). Например, все диаграммы дашионов, открытые sans и admin-bar, а также встроенные стили внизу, вы можете использовать панель администратора на интерфейсе.

Вот несколько вариантов.

1. Пользовательский заголовок – это безопасная альтернатива, если вы не хотите, чтобы wp_head на некоторых ваших страницах, но все же хотите иметь возможность использовать его и другие плагины WordPress на других шаблонах.

  1. Создайте файл header-custom.php в папке темы, в которую не входит wp_head
  2. В своем шаблоне пользовательской страницы вызовите этот заголовок, используя <?php get_header( 'custom' ); ?> <?php get_header( 'custom' ); ?>
  3. Если вы не сможете подключиться к этому еще с помощью своего плагина, вы можете использовать пользовательское действие вместо wp_head. В основном все, что вам нужно сделать, это добавить <?php do_action('custom_head'); ?> <?php do_action('custom_head'); ?> а затем в вашем подключаемом плагине так же, как и wp_head.

пример

 function my_plugin_custom_head_action() { // do stuff here } add_action('custom_head', 'my_plugin_custom_head_action'); 

Существует также плагин, который делает этот процесс использования пользовательских крючков / действий очень простым.


2. Удалите ненужные вещи из wp_head

 // Remove emojis function disable_emojis_wp_head() { remove_action( 'wp_head', 'print_emoji_detection_script', 7 ); remove_action( 'admin_print_scripts', 'print_emoji_detection_script' ); remove_action( 'wp_print_styles', 'print_emoji_styles' ); remove_action( 'admin_print_styles', 'print_emoji_styles' ); remove_filter( 'the_content_feed', 'wp_staticize_emoji' ); remove_filter( 'comment_text_rss', 'wp_staticize_emoji' ); remove_filter( 'wp_mail', 'wp_staticize_emoji_for_email' ); add_filter( 'tiny_mce_plugins', 'disable_emojis_wp_tinymce' ); } add_action( 'init', 'disable_emojis_wp_head' ); function disable_emojis_wp_tinymce( $plugins ) { if ( is_array( $plugins ) ) { return array_diff( $plugins, array( 'wpemoji' ) ); } else { return array(); } } // Remove other crap in your example add_action( 'get_header', function() { remove_action('wp_head', 'rsd_link'); // Really Simple Discovery service endpoint, EditURI link remove_action('wp_head', 'wp_generator'); // XHTML generator that is generated on the wp_head hook, WP version remove_action('wp_head', 'feed_links', 2); // Display the links to the general feeds: Post and Comment Feed remove_action('wp_head', 'index_rel_link'); // index link remove_action('wp_head', 'wlwmanifest_link'); // Display the link to the Windows Live Writer manifest file. remove_action('wp_head', 'feed_links_extra', 3); // Display the links to the extra feeds such as category feeds remove_action('wp_head', 'start_post_rel_link', 10, 0); // start link remove_action('wp_head', 'parent_post_rel_link', 10, 0); // prev link remove_action('wp_head', 'adjacent_posts_rel_link', 10, 0); // relational links 4 the posts adjacent 2 the currentpost remove_action('template_redirect', 'wp_shortlink_header', 11); remove_action('wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0 ); }, 99); // Remove adminbar inline css on frontend function removeinline_adminbar_css_frontend() { if ( has_filter( 'wp_head', '_admin_bar_bump_cb' ) ){ remove_filter( 'wp_head', '_admin_bar_bump_cb' ); } } add_filter( 'wp_head', 'removeinline_adminbar_css_frontend', 1 ); 

И если вы хотите удалить остальную ссылку api, я считаю, что это сработает:

 remove_action( 'template_redirect', 'rest_output_link_header', 11, 0 ); 

См. Здесь сообщение WPSE для получения дополнительных решений, удаляющих rest api.