Head & Footer Code - Version 1.0.9.1

Version Description

  • Fix: Fatal Error on Multisite WP's (thanks @kunzemarketing for reporting)
  • Improve: DRI for front-end debugging
Download this release

Release Info

Developer urkekg
Plugin Icon Head & Footer Code
Version 1.0.9.1
Comparing to
See all releases

Code changes from version 1.0.9 to 1.0.9.1

Files changed (4) hide show
  1. head-footer-code.php +3 -2
  2. inc/front.php +10 -26
  3. inc/helpers.php +30 -3
  4. readme.txt +6 -2
head-footer-code.php CHANGED
@@ -8,7 +8,7 @@
8
  * Plugin Name: Head & Footer Code
9
  * Plugin URI: https://urosevic.net/wordpress/plugins/head-footer-code/
10
  * Description: Easy add site-wide and/or article specific custom code to head and/or footer sections (before the &lt;/head&gt; or &lt;/body&gt;) by hooking to <code>wp_head</code> and <code>wp_footer</code>.
11
- * Version: 1.0.9
12
  * Author: Aleksandar Urosevic
13
  * Author URI: https://urosevic.net
14
  * License: GPL-3.0+
@@ -22,9 +22,10 @@ if ( ! defined( 'WPINC' ) ) {
22
  die;
23
  }
24
 
25
- define( 'WPAU_HEAD_FOOTER_CODE_VER', '1.0.9' );
26
  define( 'WPAU_HEAD_FOOTER_CODE_DB_VER', '2' );
27
  define( 'WPAU_HEAD_FOOTER_CODE_FILE', basename( __FILE__ ) );
 
28
 
29
  // Load files.
30
  require_once 'inc/helpers.php';
8
  * Plugin Name: Head & Footer Code
9
  * Plugin URI: https://urosevic.net/wordpress/plugins/head-footer-code/
10
  * Description: Easy add site-wide and/or article specific custom code to head and/or footer sections (before the &lt;/head&gt; or &lt;/body&gt;) by hooking to <code>wp_head</code> and <code>wp_footer</code>.
11
+ * Version: 1.0.9.1
12
  * Author: Aleksandar Urosevic
13
  * Author URI: https://urosevic.net
14
  * License: GPL-3.0+
22
  die;
23
  }
24
 
25
+ define( 'WPAU_HEAD_FOOTER_CODE_VER', '1.0.9.1' );
26
  define( 'WPAU_HEAD_FOOTER_CODE_DB_VER', '2' );
27
  define( 'WPAU_HEAD_FOOTER_CODE_FILE', basename( __FILE__ ) );
28
+ define( 'WPAU_HEAD_FOOTER_CODE_INC', dirname( __FILE__ ) . '/inc/' );
29
 
30
  // Load files.
31
  require_once 'inc/helpers.php';
inc/front.php CHANGED
@@ -38,16 +38,12 @@ function auhfc_wp_head() {
38
  // Get meta for post only if it's singular
39
  if ( 'not singular' !== $auhfc_post_type && in_array( $auhfc_post_type, $auhfc_settings['post_types'] ) ) {
40
  $auhfc_meta = auhfc_get_meta( 'head' );
41
- $behavior = auhfc_get_meta( 'behavior' );
42
- if ( WP_DEBUG ) {
43
- $dbg_set = "(type: {$auhfc_post_type}; bahavior: {$behavior}; priority: {$auhfc_settings['priority_h']}; do_shortcode: {$auhfc_settings['do_shortcode']})";
44
- }
45
  } else {
46
  $auhfc_meta = '';
47
- $behavior = '';
48
- if ( WP_DEBUG ) {
49
- $dbg_set = "({$auhfc_post_type})";
50
- }
51
  }
52
 
53
  // If no code to inject, simple exit
@@ -67,16 +63,12 @@ function auhfc_wp_head() {
67
  ( 'replace' == $behavior && in_array( $auhfc_post_type, $auhfc_settings['post_types'] ) && empty( $auhfc_meta ) )
68
  )
69
  ) {
70
- $out .= WP_DEBUG ? "<!-- Head & Footer Code: Site-wide head section start {$dbg_set} -->\n" : '';
71
- $out .= $auhfc_settings['head'];
72
- $out .= WP_DEBUG ? $out .= "<!-- Head & Footer Code: Site-wide head section end {$dbg_set} -->\n" : '';
73
  }
74
 
75
  // Inject article specific head code if post_type is allowed
76
  if ( ! empty( $auhfc_meta ) && in_array( $auhfc_post_type, $auhfc_settings['post_types'] ) ) {
77
- $out .= WP_DEBUG ? "<!-- Head & Footer Code: Article specific head section start {$dbg_set} -->\n" : '';
78
- $out .= $auhfc_meta;
79
- $out .= WP_DEBUG ? "<!-- Head & Footer Code: Article specific head section end {$dbg_set} -->\n" : '';
80
  }
81
 
82
  // Print prepared code.
@@ -108,15 +100,11 @@ function auhfc_wp_footer() {
108
  if ( 'not singular' !== $auhfc_post_type && in_array( $auhfc_post_type, $auhfc_settings['post_types'] ) ) {
109
  $auhfc_meta = auhfc_get_meta( 'footer' );
110
  $behavior = auhfc_get_meta( 'behavior' );
111
- if ( WP_DEBUG ) {
112
- $dbg_set = "(type: {$auhfc_post_type}; bahavior: {$behavior}; priority: {$auhfc_settings['priority_f']}; do_shortcode: {$auhfc_settings['do_shortcode']})";
113
- }
114
  } else {
115
  $auhfc_meta = '';
116
  $behavior = '';
117
- if ( WP_DEBUG ) {
118
- $dbg_set = "({$auhfc_post_type})";
119
- }
120
  }
121
 
122
  // If no code to inject, simple exit
@@ -136,16 +124,12 @@ function auhfc_wp_footer() {
136
  ( 'replace' == $behavior && in_array( $auhfc_post_type, $auhfc_settings['post_types'] ) && empty( $auhfc_meta ) )
137
  )
138
  ) {
139
- $out .= WP_DEBUG ? "<!-- Head & Footer Code: Site-wide footer section start {$dbg_set} -->\n" : '';
140
- $out .= $auhfc_settings['footer'];
141
- $out .= WP_DEBUG ? "<!-- Head & Footer Code: Site-wide footer section end {$dbg_set} -->\n" : '';
142
  }
143
 
144
  // Inject article specific head code if post_type is allowed
145
  if ( ! empty( $auhfc_meta ) && in_array( $auhfc_post_type, $auhfc_settings['post_types'] ) ) {
146
- $out .= WP_DEBUG ? "<!-- Head & Footer Code: Article specific footer section start {$dbg_set} -->\n" : '';
147
- $out .= trim( $auhfc_meta );
148
- $out .= WP_DEBUG ? "<!-- Head & Footer Code: Article specific footer section end {$dbg_set} -->\n" : '';
149
  }
150
 
151
  // Print prepared code.
38
  // Get meta for post only if it's singular
39
  if ( 'not singular' !== $auhfc_post_type && in_array( $auhfc_post_type, $auhfc_settings['post_types'] ) ) {
40
  $auhfc_meta = auhfc_get_meta( 'head' );
41
+ $behavior = auhfc_get_meta( 'behavior' );
42
+ $dbg_set = "type: {$auhfc_post_type}; bahavior: {$behavior}; priority: {$auhfc_settings['priority_h']}; do_shortcode: {$auhfc_settings['do_shortcode']}";
 
 
43
  } else {
44
  $auhfc_meta = '';
45
+ $behavior = '';
46
+ $dbg_set = $auhfc_post_type;
 
 
47
  }
48
 
49
  // If no code to inject, simple exit
63
  ( 'replace' == $behavior && in_array( $auhfc_post_type, $auhfc_settings['post_types'] ) && empty( $auhfc_meta ) )
64
  )
65
  ) {
66
+ $out .= auhfc_out( 's', 'h', $dbg_set, $auhfc_settings['head'] );
 
 
67
  }
68
 
69
  // Inject article specific head code if post_type is allowed
70
  if ( ! empty( $auhfc_meta ) && in_array( $auhfc_post_type, $auhfc_settings['post_types'] ) ) {
71
+ $out .= auhfc_out( 'a', 'h', $dbg_set, $auhfc_meta );
 
 
72
  }
73
 
74
  // Print prepared code.
100
  if ( 'not singular' !== $auhfc_post_type && in_array( $auhfc_post_type, $auhfc_settings['post_types'] ) ) {
101
  $auhfc_meta = auhfc_get_meta( 'footer' );
102
  $behavior = auhfc_get_meta( 'behavior' );
103
+ $dbg_set = "type: {$auhfc_post_type}; bahavior: {$behavior}; priority: {$auhfc_settings['priority_f']}; do_shortcode: {$auhfc_settings['do_shortcode']}";
 
 
104
  } else {
105
  $auhfc_meta = '';
106
  $behavior = '';
107
+ $dbg_set = $auhfc_post_type;
 
 
108
  }
109
 
110
  // If no code to inject, simple exit
124
  ( 'replace' == $behavior && in_array( $auhfc_post_type, $auhfc_settings['post_types'] ) && empty( $auhfc_meta ) )
125
  )
126
  ) {
127
+ $out .= auhfc_out( 's', 'f', $dbg_set, $auhfc_settings['footer'] );
 
 
128
  }
129
 
130
  // Inject article specific head code if post_type is allowed
131
  if ( ! empty( $auhfc_meta ) && in_array( $auhfc_post_type, $auhfc_settings['post_types'] ) ) {
132
+ $out .= auhfc_out( 'a', 'f', $dbg_set, $auhfc_meta );
 
 
133
  }
134
 
135
  // Print prepared code.
inc/helpers.php CHANGED
@@ -6,10 +6,10 @@ if ( ! defined( 'WPINC' ) ) {
6
 
7
  // Include back-end/front-end resources.
8
  if ( is_admin() ) {
9
- require_once 'settings.php';
10
- require_once 'class-auhfc-meta-box.php';
11
  } else {
12
- require_once 'front.php';
13
  }
14
 
15
  register_activation_hook( WPAU_HEAD_FOOTER_CODE_FILE, 'auhfc_activate' );
@@ -132,3 +132,30 @@ function auhfc_get_meta( $field_name = '' ) {
132
  return false;
133
  }
134
  } // END function auhfc_get_meta( $field_name )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6
 
7
  // Include back-end/front-end resources.
8
  if ( is_admin() ) {
9
+ require_once WPAU_HEAD_FOOTER_CODE_INC . 'settings.php';
10
+ require_once WPAU_HEAD_FOOTER_CODE_INC . 'class-auhfc-meta-box.php';
11
  } else {
12
+ require_once WPAU_HEAD_FOOTER_CODE_INC . 'front.php';
13
  }
14
 
15
  register_activation_hook( WPAU_HEAD_FOOTER_CODE_FILE, 'auhfc_activate' );
132
  return false;
133
  }
134
  } // END function auhfc_get_meta( $field_name )
135
+
136
+ /**
137
+ * Return debugging string if WP_DEBUG constant is true.
138
+ * @param string $scope Scope of output (s - SITE WIDE, a - ARTICLE SPECIFIC)
139
+ * @param string $location Location of output (h - HEAD, f - FOOTER)
140
+ * @param string $message Output message
141
+ * @param string $code Code for output
142
+ * @return string Composed string
143
+ */
144
+ function auhfc_out( $scope = null, $location = null, $message = null, $code = null ) {
145
+ if ( ! WP_DEBUG ) {
146
+ return $code;
147
+ }
148
+ if ( null == $scope || null == $location || null == $message ) {
149
+ return;
150
+ }
151
+ $scope = 's' == $scope ? 'Site-wide' : 'Article specific';
152
+ $location = 'h' == $location ? 'HEAD' : 'FOOTER';
153
+ return sprintf(
154
+ '<!-- Head & Footer Code: %1$s %2$s section start (%3$s) -->%5$s %4$s%5$s<!-- Head & Footer Code: %1$s %2$s section end (%3$s) -->%5$s',
155
+ $scope, // 1
156
+ $location, // 2
157
+ trim( $message ), // 3
158
+ trim( $code ), // 4
159
+ "\n" // 5
160
+ );
161
+ } // END function auhfc_out( $scope = null, $location = null, $message = null, $code = null )
readme.txt CHANGED
@@ -4,12 +4,12 @@ Donate link: https://urosevic.net/wordpress/donate/?donate_for=head-footer-code
4
  Tags: wp_head, wp_footer, head footer code, custom head script, custom footer script, google analytics, pixel tracking, tracking code, javascript, scripts, site verification, css
5
  Requires at least: 4.9
6
  Tested up to: 5.1.1
7
- Stable tag: 1.0.9
8
  Requires PHP: 5.6
9
  License: GPLv3 or later
10
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
11
 
12
- Easy add site-wide and/or article specific custom code before the &lt;/head&gt; or &lt;/body&gt; by hooking to wp_head and wp_footer.
13
 
14
  == Description ==
15
 
@@ -86,6 +86,10 @@ Initial release of new plugin developed by Aleksandar Urosevic.
86
 
87
  == Changelog ==
88
 
 
 
 
 
89
  = 1.0.9 =
90
  * Add: Descriptive post types and descriptions for article specific sections
91
  * Add: Option to process shortcodes in FOOTER section (global setting for site-wide and article specific)
4
  Tags: wp_head, wp_footer, head footer code, custom head script, custom footer script, google analytics, pixel tracking, tracking code, javascript, scripts, site verification, css
5
  Requires at least: 4.9
6
  Tested up to: 5.1.1
7
+ Stable tag: 1.0.9.1
8
  Requires PHP: 5.6
9
  License: GPLv3 or later
10
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
11
 
12
+ Easy add site-wide and/or article specific custom code before the &lt;/head&gt; or &lt;/body&gt; by hooking to wp_head and wp_footer. Multisite is supported!
13
 
14
  == Description ==
15
 
86
 
87
  == Changelog ==
88
 
89
+ = 1.0.9.1 =
90
+ * Fix: Fatal Error on Multisite WP's (thanks @kunzemarketing for reporting)
91
+ * Improve: DRI for front-end debugging
92
+
93
  = 1.0.9 =
94
  * Add: Descriptive post types and descriptions for article specific sections
95
  * Add: Option to process shortcodes in FOOTER section (global setting for site-wide and article specific)