חיפוש ]

ארכיונים: סניפטים וקטעי קוד | עמוד 5

כשאתם מעלים תמונה באמצעות אפשרות המדיה של וורדפרס, ולאחר מכן מכניסים תמונה זו לעורך התוכן, התמונה תצורף עם תכונות הגובה והרוחב (width & height attributes). תכונות אלו רצויות עקרונית מכיוון ואלו עוזרות לדפדפן לשמור מקום מתאים לתמונה כשהוא מבצע את פעולת ה layout.

אך במידה ותהיו מעוניינים למנוע מוורדפרס להוסיף תכונות גובה ורוחב אלו, הוסיפו את הקוד הבא לקובץ functions.php בתבנית שלכם:

add_filter( 'post_thumbnail_html', 'remove_width_attribute', 10 );
add_filter( 'image_send_to_editor', 'remove_width_attribute', 10 );

function remove_width_attribute( $html ) {
   $html = preg_replace( '/(width|height)="\d*"\s/', "", $html );
   return $html;
}

מידע נוסף על תמונות בוורדפרס תמצאו בפוסט הבא.

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

/*
 * Redirects user to a specific page upon coupon removal.
 */
function action_woocommerce_removed_coupon( $coupon_code ) { 
    // Redirection...
    wp_redirect( $url ); // Replace $url by your page URL.
    exit; 
}; 

// add the action 
add_action( 'woocommerce_removed_coupon', 'action_woocommerce_removed_coupon', 10, 1 );

הנה דרך קצרה לבטל את אפשרות ה Lightbox בווקומרס 3.0 ומעלה. הוסיפו את הקוד הבא לקובץ functions.php:

add_action( 'after_setup_theme', 'remove_wc_gallery_lightbox', 100 );

function remove_wc_gallery_lightbox() { 
  remove_theme_support( 'wc-product-gallery-lightbox' );
}

ייתכן ותרצו למנוע הצגה של גירסת הוורדפרס בה אתם משתמשים המופיעה אוטומטית ב Header של האתר. אחת הסיבות לעשות זאת היא אבטחת אתר הוורדפרס שלכם.

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

// remove version info from head and feeds
function sv_complete_version_removal() {
    return '';
}
add_filter('the_generator', 'sv_complete_version_removal');

במידה וישנה אפשרות להירשם לאתר הוורדפרס שלכם, ייתכן ותרצו להפנות נרשמים חדשים לעמוד מסוים לאחר הרשמה מוצלחת. למשל לעמוד בו הם יכולים להוריד קובץ מסויים, או כזה שמספר אינפורמציה חשובה אותה תרצו שאותו משתמש יראה לאחר ההרשמה:

function sv_registration_redirect(){
    return home_url( '/finished/' );
}
add_filter( 'registration_redirect', 'sv_registration_redirect' );

מידע על הפניות הקשור בעקיפין לנושא זה ניתן למצוא בפוסט הפניות 301 קבועות וחשיבותן מבחינת קידום אתרים ו SEO.

כברירת מחדל, וורדפרס אינה מאפשרת למשתמשים בעלי הרשאות ״תורמים״ להעלות תמונות לספריית המדיה. אז כמובן שאתם יכולים לספר לאותו משתמש הרשאות ברמה גבוהה יותר, אך זה יאפשר להם לבצע פעולות נוספות באתר שייתכן ואינכם מעוניינים שיהיה להם את היכולת לבצע.

הקוד הבא יאפשר ספציפית למשתמשים מסוג תורמים להעלות תמונות לפוסט שכתבו ללא שום הרשאה נוספת:


function sv_allow_contributor_uploads() {
    $contributor = get_role('contributor');
    $contributor->add_cap('upload_files');
}

if (current_user_can('contributor') && !current_user_can('upload_files'))
    add_action('admin_init', 'sv_allow_contributor_uploads');

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

אז לפוסטים חדשים ניתן להשתמש בתמונה הראשית בצורה סטנדרטית, אך אם לפוסטים ישנים אתם מעוניינים להשתמש בתמונה הראשונה שמופיעה בתוכן הפוסט כתמונה הראשית, או תמונה כלשהי דיפולטיבית אם לא קיימות תמונות בתוכן הפוסט הספציפי – הוסיפו את הקוד הבא ל functions.php:

function catch_that_image() {
  global $post, $posts;
  $first_img = '';
  ob_start();
  ob_end_clean();
  $output = preg_match_all('/<img.+?src=[\'"]([^\'"]+)[\'"].*?>/i', $post->post_content, $matches);
  $first_img = $matches[1][0];

  if(empty($first_img)) {
    $first_img = "/path/to/default.png";
  }
  return $first_img;
}

ובכדי להשתמש בזה בתוך הלולאה של וורדפרס:

if ( get_the_post_thumbnail($post_id) != '' ) {

  echo '<a href="'; the_permalink(); echo '" class="thumbnail-wrapper">';
   the_post_thumbnail();
  echo '</a>';

} else {

 echo '<a href="'; the_permalink(); echo '" class="thumbnail-wrapper">';
 echo '<img src="';
 echo catch_that_image();
 echo '" alt="" />';
 echo '</a>';

}

הפונקציה body_class עוזרת להוסיף קלאסים לתגית ה body שבדרך מכילה אינפורמציה על איזה סוג עמוד מוצג כרגע, וכנראה לטובת האפשרות לעצב אלמנטים מסויים בעמוד המסויים לפי אותו קלאס ספציפי.

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

function sv_add_category_to_single($classes) {
    if (is_single() ) {
        global $post;
        foreach((get_the_category($post->ID)) as $category) {
            // add category slug to the $classes array
            $classes[] = $category->category_nicename;
        }
    }
    // return the $classes array
    return $classes;
}
add_filter('body_class','sv_add_category_to_single');

בכדי לאפשר thumbnails או תמונות ראשיות בפוסטים, כל שעליכם לעשות הוא להוסיף את השורה הבאה לקובץ functions.php של התבנית שלכם:

add_theme_support('post-thumbnails'); 

גם די פשוט להציג תמונה זו כ HTML המייצר את תגית ה <img> הרצויה:

get_the_post_thumbnail();

אך מה במידה ואתם צריכים רק את הקישור לתמונה ראשית זו? נניח במצב בו את רוצים להשתמש בה כ background-image על אלמנט מסויים. אז זה לא פשוט כפי שאני מצפה שיהיה, עם זאת לא כזה מסובך. מה שעליכם לעשות הוא להוסיף את הקוד הבא בתוך הלולאה של וורדפרס:

המשתנה $thumb_url יהיה הקישור לתמונה הראשית של הפוסט המדובר…

פונקציות אלו אם אינכם יודעים יוצרים קישורים לפוסט הקודם ולפוסט הבא. קיימות לאלו לא מעט אפשרויות אך לו כזו המאפשרת להוסיף קלאס לקישור. אם תרצו לעשות זאת הוסיפו את הקוד הבא לקובץ functions.php:

add_filter('next_posts_link_attributes', 'posts_link_attributes');
add_filter('previous_posts_link_attributes', 'posts_link_attributes');

function posts_link_attributes() {
  return 'class="styled-button"';
}