Многие пользователи, когда редактируют какой-то пост (статью) или добавляет новую, хотят в нее добавить свой CSS класс (код) для определенного оформления статьи. Например, хочет выделить какой-то параграф, ну или для других целей.
Вы можете добавлять постоянно CSS код в Ваш основной файл стилей (style.css), но это будет не совсем рационально и правильно. Во-первых, Вам придется постоянно файл стилей редактировать, а во-вторых, он будет постоянно увеличиваться в размере (см. оптимизация css).
Поэтому, в данной статье мы рассмотрим с Вами о том, как можно добавить свой CSS-код для любой статьи на WordPress сайте. Для этих целей нам понадобится файл functions.php, который Вы можете скачать с FTP, или же редактировать в консоли администратора, зайдя в Внешний вид-Редактор и в правой колонке найти файл functions.php и нажать на него, для дальнейшего редактирования.
Далее Вам необходимо вставить следующий код в файл functions.php:
//Custom CSS Widget
add_action('admin_menu', 'custom_css_hooks');
add_action('save_post', 'save_custom_css');
add_action('wp_head','insert_custom_css');
function 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');
}
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 save_custom_css($post_id) {
if (!wp_verify_nonce($_POST['custom_css_noncename'], 'custom-css')) return $post_id;
if (('DOING_AUTOSAVE') && DOING_AUTOSAVE) return $post_id;
$custom_css = $_POST['custom_css'];
update_post_meta($post_id, '_custom_css', $custom_css);
}
function 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();
}
}Данный код добавит специальное поле для вставки CSS-кода в каждой статье при ее добавлении или редактировании. После того, как Вы добавите данный код и сохраните файл functions.php, у Вас не появится дополнительное поле, куда Вы можете вставлять CSS-код, то значит, Вам необходимо зайти в Настройки экрана (в самом вверху браузера, в консоли администратора) и установить галочку поле Custom CSS.
Таким образом, Вы сможете добавлять любой CSS код, для любой статьи WordPress, при этом, не трогая файл style.css.
Также советуем почитать на PressDev.RU
Короткая ссылка: http://pressdev.ru/?p=4613





А по логике вещей, правильно ли в каждой статье свой css пихать?
Большое спасио за статью. Опробовал ,работает!!!!!! Столкнулся классы для страницы и постов одинаковы. Хорошо ,что страниц не много ,смогу менять стиль для страниц
Это очень хорошее решение, я вставил в сайт, работает! А могли бы вы подсказать, как сделать Custom CSS для всего сайта (чтобы такое поле было в настройках темы) и для категорий?