Skip to content
Snippets Groups Projects
Commit 4d92cdeb authored by Erick Hitter's avatar Erick Hitter
Browse files

Support for scripts, stylesheets, and raw header output.

parent 0a6730fb
No related branches found
No related tags found
1 merge request!2Support for additional HeadSpace2 features
......@@ -45,6 +45,14 @@ class ETH_Escape_HeadSpace2 {
private $hs_string_keys = array(
'_headspace_description',
'_headspace_metakey',
'_headspace_page_title',
'_headspace_raw',
'_headspace_raw_footer',
);
private $hs_array_keys = array(
'_headspace_scripts',
'_headspace_stylesheets',
);
private $hs_robots_keys = array(
......@@ -81,6 +89,7 @@ class ETH_Escape_HeadSpace2 {
// Check for HS data
$hs_data = array();
// Keys that only exist once per post
foreach ( array_merge( $this->hs_string_keys, $this->hs_robots_keys ) as $hs_key ) {
$value = get_post_meta( get_the_ID(), $hs_key, true );
......@@ -89,6 +98,15 @@ class ETH_Escape_HeadSpace2 {
}
}
// Keys that can exist multiple times per post
foreach ( $this->hs_array_keys as $hs_key ) {
$values = get_post_meta( get_the_ID(), $hs_key, false );
if ( ! empty( $values ) ) {
$hs_data[ $hs_key ] = $values;
}
}
// Bail if no HS data exists for this post
if ( empty( $hs_data ) ) {
return;
......@@ -98,11 +116,25 @@ class ETH_Escape_HeadSpace2 {
echo "\n<!-- Escape HeadSpace2 by Erick Hitter; ethitter.com -->\n";
// Handle basic, string-containing keys
$output = array();
foreach ( $hs_data as $hs_key => $hs_value ) {
switch( $hs_key ) {
case '_headspace_description' :
case '_headspace_metakey' :
echo '<meta name="' . esc_attr( $this->hs_keys_to_meta_names[ $hs_key ] ) . '" content="' . esc_attr( $hs_value ) . '" />' . "\n";
$output[] = '<meta name="' . esc_attr( $this->hs_keys_to_meta_names[ $hs_key ] ) . '" content="' . esc_attr( $hs_value ) . '" />';
break;
case '_headspace_scripts' :
foreach ( $hs_value as $_source ) {
$output[] = '<script type="text/javascript" src="' . esc_url( $_source ) . '"></script>';
}
break;
case '_headspace_stylesheets' :
foreach ( $hs_value as $_source ) {
$output[] = '<link rel="stylesheet" href="' . esc_url( $_source ) . '" type="text/css" />';
}
break;
default :
......@@ -127,11 +159,21 @@ class ETH_Escape_HeadSpace2 {
$robots = implode( ',', $robots );
echo '<meta name="robots" content="' . esc_attr( $robots ) . '" />' . "\n";
$output[] = '<meta name="robots" content="' . esc_attr( $robots ) . '" />' . "\n";
}
// Raw output should follow all other output
if ( isset( $hs_data[ '_headspace_raw' ] ) ) {
$output[] = $hs_data[ '_headspace_raw' ];
}
// Output whatever we've built
if ( ! empty( $output ) ) {
echo implode( "\n", $output );
}
// Mark end of output
echo "<!-- Escape HeadSpace2 -->\n";
echo "\n<!-- Escape HeadSpace2 -->\n";
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment