כסלו

לילות כימים: פרק 17.25 – רקע לפוסט במצב עריכה

אם אתם חדשים פה אז ברוכים הבאים! הפוסט הזה הוא חלק מסדרה שבה אני מתארת את עבודתי התחביבית על האתר של עמותת כמוך. מוזמנים לקרוא את כל הפרקים כאן.
השבוע ובשבוע הבא לא יתפרסמו פרקים חדשים באתר כמוך בגלל החנוכה. תליתי שם מודעה ברוח זו (ואם באתם לכאן בעקבות מודעה זו, אל תלחצו על הקישור! זה רק יחזיר אתכם לשם, ותזכו להרגיש איך זה להיות בלולאה אינסופית…), ופה אני יכולה לנצל את ההזדמנות לכתוב פוסט עם קוד, וככה לצאת ידי חובת כל הדעות.  

החלת עיצוב רק על פוסטים מסויימים במצב עריכת פוסט

כשהוחלט על יצירת מדור הנוסטלגיה באתר כמוך, רצינו לתת מראה אחיד לכל הרשומות במדור הזה, וחשבנו על רקע מקומט. זה אחלה בחלה וסבבה לתת את זה באתר עצמו – יש ל-body קלאס של הקטגוריה וכך אפשר להחיל CSS רק על רשומות בקטגוריה הזאת. עשיתי זאת כך:

add_filter( 'body_class', 'kamoha_add_body_class' );

/**
 * Add body class based on the theme options which were chosen in the Theme Customizer
 * @param type $classes
 * @return type
 */
 function kamoha_add_body_class( $classes ) {
     // Add category id to class in single page, so can style posts of specific categories
     // Taken from CSS tricks: https://css-tricks.com/snippets/wordpress/add-category-name-body_class/
     if ( is_single() ) {
         global $post;
         foreach ( (get_the_category( $post->ID ) ) as $category ) {
             // add category slug to the $classes array
             $classes[] = 'cat-'.$category->cat_ID;
         }
     }
     return $classes;
 }

אבל אני רציתי שזה יופיע גם במצב של עריכת הפוסט (למה? כי אני אוהבת שמצב העריכה דומה הכי שאפשר למצב התצוגה. בשביל זה יש לי קובץ editor-styles.css די רציני, ורציתי להוסיף גם את העיצוב של הרקע המקומט אליו). אבל איך אפשר? בממשק עריכת הפוסט אין שום קלאס שמרמז על איזה מדור אני נמצאת בו כי הפונקציה הנ”ל לא משפיעה במצב הזה. אז מה, לא אוכל להחיל את הרקע המקומט בממשק העריכה? לא מצא חן בעיניי. אז הלכתי לשאול. אני לא זוכרת למה שאלתי דווקא על הוספת קלאס של פוסט ולא של קטגוריה אבל נראה לי שאפשר למצוא את הקטגוריה של הפוסט כשנמצאים בפונקציה הזאת, ולתת אותה בתור קלאס של body. בכל מקרה אני מביאה כאן את מה שיישמתי אצלי:

/**
 * Add post class to edit post screen, so editor style can be added
 * @return comma separated list of classes
 */
function kamoha_2015_body_class_admin_filter( $init_array ) {
    global $post;
 
     if ( is_a( $post, 'WP_Post' ) ) {
         $init_array['body_class'] .= ' ' . join( ' ', get_post_class( '', $post->ID ) );
     }
     return $init_array;
}
 
add_filter( 'tiny_mce_before_init', 'kamoha_2015_body_class_admin_filter' );

וזה עובד:

כתבו תגובה

כתובת הדוא"ל שלכם לא תוצג.