Intereting Posts
лучший способ сделать многопользовательский WordPresss безопасным, но в то же время поддерживая мои усилия по разработке плагина woocommerce с пользовательским типом сообщения Конфигурация .htaccess для add_rewrite_rule имеет смысл Исключить файл из редактора тем Проверка многопользовательской активации темы Включить визуальный редактор в комментариях на странице редактирования CPT Удалить разделы Custuomize Как решить проблему с использованием Javascript AJAX для WPJ Не удается получить полный размер эскиза, используя the_post_thumbnail Лучший способ обработки перенаправления Получить виджет Название из идентификатора виджета Как я могу отобразить единственную ссылку для публикации, основанную на образце заголовка и ежемесячно меняющейся? Как создавать и извлекать данные из специальной регистрационной формы? Шаблоны исчезли из выпадающих списков Изменения в сообщениях исчезли (для некоторых должностей)

Добавьте флажок, чтобы добавить экран в список, который добавляет класс в заголовок

Мне нужно, чтобы некоторые должности имели разные цвета заголовков, чем другие, и я полагал, что это было бы наиболее удобно выполнить с помощью какого-либо флажка на экране создания / редактирования сообщений. Как я могу добавить флажок, а затем получить значение в шаблоне?

благодаря

Solutions Collecting From Web of "Добавьте флажок, чтобы добавить экран в список, который добавляет класс в заголовок"

Да, правильно, вам нужен специальный мета-ящик, который будет создавать флажки на экране «Редактирование сообщений».

почтовый пользовательский мета-ящик

В этом случае они являются переключателями, так как нам нужно только одно значение.

Ниже приведен код, который его создает. Поместите его в файл functions.php вашей темы или создайте простой плагин, чтобы он стал независимым от темы.

 /* Define the custom box */ add_action( 'add_meta_boxes', 'wpse_61041_add_custom_box' ); /* Do something with the data entered */ add_action( 'save_post', 'wpse_61041_save_postdata' ); /* Adds a box to the main column on the Post and Page edit screens */ function wpse_61041_add_custom_box() { add_meta_box( 'wpse_61041_sectionid', 'Title Color', 'wpse_61041_inner_custom_box', 'post', 'side', 'high' ); } /* Prints the box content */ function wpse_61041_inner_custom_box($post) { // Use nonce for verification wp_nonce_field( 'wpse_61041_wpse_61041_field_nonce', 'wpse_61041_noncename' ); // Get saved value, if none exists, "default" is selected $saved = get_post_meta( $post->ID, 'title_color', true); if( !$saved ) $saved = 'default'; $fields = array( 'red' => __('Red', 'wpse'), 'green' => __('Green', 'wpse'), 'blue' => __('Blue', 'wpse'), 'default' => __('Default', 'wpse'), ); foreach($fields as $key => $label) { printf( '<input type="radio" name="title_color" value="%1$s" id="title_color[%1$s]" %3$s />'. '<label for="title_color[%1$s]"> %2$s ' . '</label><br>', esc_attr($key), esc_html($label), checked($saved, $key, false) ); } } /* When the post is saved, saves our custom data */ function wpse_61041_save_postdata( $post_id ) { // verify if this is an auto save routine. // If it is our form has not been submitted, so we dont want to do anything if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) return; // verify this came from the our screen and with proper authorization, // because save_post can be triggered at other times if ( !wp_verify_nonce( $_POST['wpse_61041_noncename'], 'wpse_61041_wpse_61041_field_nonce' ) ) return; if ( isset($_POST['title_color']) && $_POST['title_color'] != "" ){ update_post_meta( $post_id, 'title_color', $_POST['title_color'] ); } } 

код на основе этого ответа

Как использовать его в теме

При наличии правильных правил CSS ( h1.default , h1.red и т. Д.) h1.red , где вы хотите применить класс цвета к заголовку ( index.php , single.php и т. Д.), Используйте что-то вроде:

 <?php $title_color = get_post_meta( get_the_ID(), 'title_color', true); ?> <h1 class="entry-title <?php echo esc_attr($title_color); ?>"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h1> 

Работа @brasofilo отличная, но если вы не хотите много кодировать, вы можете выполнять ту же работу из Custom Fields . По умолчанию он скрыт. Вы можете сделать, это видно из Screen Options . Создайте новое поле и назовите его color и поместите имя цвета в поле value . Затем поместите этот код в header.php темы ниже </head> .

 <style type="text/css"> /*Replace [color-name] with you color example: red*/ #red {color:"red";} #green {color:"green";} #[color-name] {color:"[color-name]";} #[color-name] {color:"[color-name]";} </style> <?php global $post; $color = get_post_meta(get_the_ID(), 'color', true); $id = "id=" ?> 

Затем найдите <h1 class="entry-title" и поместите этот код внутри него <?php echo $id, $color;?> . Теперь, когда evey вы хотите изменить цвет заголовка, выберите color в пользовательских полях и укажите имя цвета в value .