ארכיון: סניפטס | עמוד 4

כיצד למנוע מוורדפרס ליצור את גדלי תמונות ברירת המחדל

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

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

function wcr_remove_intermediate_image_sizes($sizes, $metadata) {
    $disabled_sizes = array(
        'thumbnail', // 150x150 image
        'medium', // max 300x300 image
        'large'   // max 1024x1024 image
    );

    // unset disabled sizes
    foreach ($disabled_sizes as $size) {
        if (!isset($sizes[$size])) {
            continue;
        }
    
        unset($sizes[$size]);
    }

    return $sizes;
}

add_filter('intermediate_image_sizes_advanced', 'wcr_remove_intermediate_image_sizes', 10, 2);

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

הסרת השדה ״אתר״ מטופס התגובות

ישנם מצבים בהם השדה ״אתר״ (באנגלית נקרא לפעמים Website או URL) אינו נחוץ בטופס התגובות באתרים מסויימים. במצבים אלו, יהיה נכון להסיר את השדה מהטופס על ידי הוספת הקוד הבא לקובץ functions.php:

/**
 * Remove the URL field
 *
 * @param array $fields
 *
 * @return array
 */
function sv_comment_form_default_fields( $fields ) {
	if ( isset( $fields['url'] ) ) {
		unset( $fields['url'] );
	}

	return $fields;
}

add_filter( 'comment_form_default_fields', 'sv_comment_form_default_fields' );

כמובן, אם אתם משתמשים בתבנית בת הוסיפו קוד זה ל functions.php בתבנית הבת שלכם.

שינוי יחס הכיווץ ואיכות התמונות בוורדפרס

וורדפרס מייצרת מספר גדלי תמונות בהתאם להגדרות התבנית שלכם. תמונות אלו מיוצרות באיכות 90 בסקאלה של 1 – 100 כברירת מחדל. תוכלו לחסוך רוחב פס על אם תשנו הגדרה זו ל 75 כך שיתבצע כיווץ אינטנסיבי יותר לתמונות.

/**
 * Snippet Name: Change jpg compression level
 */
function sv_jpeg_quality() {
	return 75;
}
add_filter( 'jpeg_quality', 'sv_jpeg_quality' );

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

הסרה של פוסטים דביקים (sticky posts) מהלולאה הראשית

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

/**
 * Snippet Name: Remove sticky posts from the main query
 */
function sv_ignore_sticky( $query ) {
	if ( is_home() && $query->is_main_query() ) {
		$query->set( 'ignore_sticky_posts', true );
	}
	$query->set( 'post__not_in', get_option( 'sticky_posts' ) );
}

add_action( 'pre_get_posts', 'sv_ignore_sticky' );

הוספת תכונה לתמונות באמצעות the_post_thumbnail

לפעמים יש צורך להוסיף תכונה מסויימת לתמונה. ניתן לעשות זאת במהירות באמצעות הפונקציה the_post_thumbnail. הסניפט הבא יוסיף את התכונה 'itemprop'="image" לתמונות אך אתם יכולים להשתמש בזה גם בכדי להוסיף class, alt, title וכדומה.

the_post_thumbnail( 'thumbnail', array('itemprop'=>'image') );

איך להגביל את גודל התמונות שניתן להעלות לספריית המדיה בוורדפרס

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

/* 
 * Check image resolution (px) before crunching
 */
function savvy_validate_image_size( $file ) {
    $image = getimagesize($file['tmp_name']);
    $minimum = array(
        'width' => '460',
        'height' => '460'
    );
    $maximum = array(
        'width' => '1280',
        'height' => '1280'
    );
    $image_width = $image[0];
    $image_height = $image[1];

    $too_small = "Image dimensions are too small. Minimum size is {$minimum['width']} by {$minimum['height']} pixels. Uploaded image is $image_width by $image_height pixels.";
    $too_large = "Image dimensions are too large. Maximum size is {$maximum['width']} by {$maximum['height']} pixels. Uploaded image is $image_width by $image_height pixels.";

    if ( $image_width < $minimum['width'] || $image_height < $minimum['height'] ) {
        // add in the field 'error' of the $file array the message 
        $file['error'] = $too_small;
        return $file;
    }
    elseif ( $image_width > $maximum['width'] || $image_height > $maximum['height'] ) {
        //add in the field 'error' of the $file array the message
        $file['error'] = $too_large;
        return $file;
    }
    else
        return $file;
}
add_filter('wp_handle_upload_prefilter','savvy_validate_image_size');

באפשרותכם לשנות את גובה ורוחב המינימום והמקסימום של התמונה (פיקסלים) בשורות 6-12. אתם מוזמנים אגב לתת מבט על פוסט רחב יותר המדבר על גודל התמונות בוורדפרס.

שנו את משך זמן השמירה האוטומטית של פוסטים

כאשר אתם כותבים פוסט, הוא יישמר אוטומטית כטיוטה כל דקה. במקרה והדפדפן שלכם קורס זה יאפשר לכם לשחזר את העבודה. ניתן לשנות את הזמן בין שמירה לשמירה על ידי הוספת השורה הבאה לקובץ wp-config.php.

define( 'AUTOSAVE_INTERVAL', X);

כאשר X הוא מספר השניות בין שמירה לשמירה.

הצגת המחיר בווקומרס למשתמשים מחוברים בלבד

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

add_filter( 'woocommerce_get_price_html', function( $price ) {
	if ( is_user_logged_in() ) return $price;
	return '';
} );

בקוד מעלה (אותו יש להוסיף ל functions.php) השתמשנו בתנאי הקובע כי אם המשתמש אינו מחובר למערכת המחירים לא יוצגו עבורו בחנות. כמובן שאתם יכולים להשתמש בכל תנאי שתבחרו.

הסרת גורפת של מחירי מבצע בחנויות ווקומרס

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

/**
 * Savvy Disable all sales on WooCommerce Stores.
 *
 */
function savvy_wc_get_sale_price( $sale_price, $product ) {
 	return $product->get_regular_price(); // Un-comment this to disable all sale prices
}
add_filter( 'woocommerce_product_get_sale_price', 'savvy_wc_get_sale_price', 50, 2 );
add_filter( 'woocommerce_product_get_price', 'savvy_wc_get_sale_price', 50, 2 );

שינוי מיקום הסרגל העליון בוורדפרס לתחתית

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

לא פעם קרה לי כי הסרגל העליון (admin bar) של וורדפרס הפריע לי בעיניים מכיוון והסתיר תפריטים שהיו מוגדרים כ – position:fixed ב css. מספר שורות ב functions.php והאדמין יירד לתחתית העמוד:

<?php
/***** BEGIN HERE *****/        
function fb_move_admin_bar() { ?>
	<style type="text/css">
		body {
			margin-top: -28px;
			padding-bottom: 28px;
		}
		body.admin-bar #wphead {
			padding-top: 0;
		}
		body.admin-bar #footer {
			padding-bottom: 28px;
		}
		#wpadminbar {
			top: auto !important;
			bottom: 0;
		}
		#wpadminbar .quicklinks .menupop ul {
			bottom: 28px;
		}
	</style>
<?php }
// on backend area
add_action( 'admin_head', 'fb_move_admin_bar' );
// on frontend area
add_action( 'wp_head', 'fb_move_admin_bar' );