Skip to content

Instantly share code, notes, and snippets.

@arelthia
Last active December 20, 2015 11:29
Show Gist options
  • Save arelthia/6123742 to your computer and use it in GitHub Desktop.
Save arelthia/6123742 to your computer and use it in GitHub Desktop.
Per Post CSS for Widget Content
/*
Per Post Custom CSS
This bit of code will add a meta box to the bottom
of every post and page content editor. In that box
you can enter your CSS styling declarations and that
specific CSS style will ONLY be loaded on that individual
page or post.
*/
add_action('admin_menu', 'bb_custom_css_hooks');
add_action('save_post', 'bb_save_custom_css');
add_action('wp_head','bb_insert_custom_css');
function bb_custom_css_hooks() {
add_meta_box('custom_css', 'Custom CSS', 'custom_css_input', 'post', 'normal', 'high');
add_meta_box('custom_css', 'Custom CSS', 'custom_css_input', 'page', 'normal', 'high');
//add metabox to builders widget content
add_meta_box('custom_css', 'Custom CSS', 'custom_css_input', 'widget_content', 'normal', 'high');
}
function custom_css_input() {
global $post;
echo '<input type="hidden" name="custom_css_noncename" id="custom_css_noncename" value="'.wp_create_nonce('custom-css').'" />';
echo '<textarea name="custom_css" id="custom_css" rows="5" cols="30" style="width:100%;">'.get_post_meta($post->ID,'_custom_css',true).'</textarea>';
}
function bb_save_custom_css($post_id) {
if (!wp_verify_nonce($_POST['custom_css_noncename'], 'custom-css')) return $post_id;
if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return $post_id;
$custom_css = $_POST['custom_css'];
update_post_meta($post_id, '_custom_css', $custom_css);
}
function bb_insert_custom_css() {
if (is_page() || is_single()) {
if (have_posts()) : while (have_posts()) : the_post();
echo '<style type="text/css">'.get_post_meta(get_the_ID(), '_custom_css', true).'</style>';
endwhile; endif;
rewind_posts();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment