חיפוש

סניפטים וקטעי קוד

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

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

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

שינוי סמל המטבע בווקומרס

אם אתם רוצים לשנות את סמל המטבע שווקומרס מציגה (למשל להחליף "$" ב-"USD" או להוסיף רווח), הוסיפו את הקוד הבא לקובץ functions.php. לעוד על הוקים של ווקומרס.

add_filter( 'woocommerce_currency_symbol', function( $symbol, $currency ) {
	switch ( $currency ) {
		case 'USD':
			$symbol = 'USD ';
			break;
		case 'ILS':
			$symbol = '₪ ';
			break;
	}
	return $symbol;
}, 10, 2 );

שנו את ערכי ה-case וה-$symbol בהתאם לצורך.

הוספת תדירות Cron מותאמת בוורדפרס

וורדפרס מגיעה עם שלוש תדירויות ל-WP-Cron: hourly, twicedaily ו-daily. אם אתם צריכים תדירות אחרת (למשל כל 5 דקות), הוסיפו את הקוד הבא. לעוד על הוקים ופילטרים בוורדפרס.

add_filter( 'cron_schedules', function( $schedules ) {
	$schedules['every_five_minutes'] = array(
		'interval' => 300,
		'display'  => 'Every 5 Minutes',
	);
	return $schedules;
} );

// Schedule the event on theme activation
if ( ! wp_next_scheduled( 'my_custom_cron_event' ) ) {
	wp_schedule_event( time(), 'every_five_minutes', 'my_custom_cron_event' );
}

add_action( 'my_custom_cron_event', function() {
	// Your code here
} );

הסתרת מוצרים שאזלו מהמלאי בווקומרס

ניתן להסתיר מוצרים שאזלו מהמלאי מעמודי הקטלוג והחיפוש. הדרך הפשוטה ביותר היא דרך הגדרות ווקומרס: WooCommerce > Settings > Products > Inventory > "Hide out of stock items from the catalog". אם אתם מעדיפים דרך קוד, הוסיפו ל-functions.php. לעוד על ניהול מלאי בווקומרס.

add_action( 'pre_get_posts', function( $query ) {
	if ( ! is_admin() && $query->is_main_query() && ( is_shop() || is_product_category() || is_product_tag() ) ) {
		$query->set( 'meta_query', array(
			array(
				'key'     => '_stock_status',
				'value'   => 'instock',
				'compare' => '=',
			),
		) );
	}
} );

ביטול Pingbacks ו-Trackbacks בוורדפרס

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

ביטול Pingbacks דרך קוד – הוסיפו ל-functions.php:

add_filter( 'xmlrpc_methods', function( $methods ) {
	unset( $methods['pingback.ping'] );
	unset( $methods['pingback.extensions.getPingbacks'] );
	return $methods;
} );

add_action( 'pre_ping', function( &$links ) {
	$home = get_option( 'home' );
	foreach ( $links as $l => $link ) {
		if ( strpos( $link, $home ) === 0 ) {
			unset( $links[ $l ] );
		}
	}
} );

כמו כן, כבו את האפשרות בהגדרות: Settings > Discussion > בטלו את "Allow link notifications from other blogs (pingbacks and trackbacks)".

הגדלת גודל קובץ מקסימלי להעלאה בוורדפרס

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

אפשרות 1 – קובץ .htaccess:

php_value upload_max_filesize 64M
php_value post_max_size 64M
php_value max_execution_time 300
php_value max_input_time 300

אפשרות 2 – קובץ wp-config.php:

@ini_set( 'upload_max_filesize', '64M' );
@ini_set( 'post_max_size', '64M' );
@ini_set( 'max_execution_time', '300' );

אפשרות 3 – קובץ php.ini:

upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 300

החליפו 64M בגודל הרצוי.

הגדלת מגבלת הזיכרון בוורדפרס

אם אתם נתקלים בשגיאת "Allowed memory size exhausted", הגדילו את מגבלת הזיכרון של וורדפרס. הוסיפו את השורות הבאות לקובץ wp-config.php לפני השורה "That's all, stop editing!". לעוד על אופטימיזציה של wp-config.php.

define( 'WP_MEMORY_LIMIT', '256M' );
define( 'WP_MAX_MEMORY_LIMIT', '512M' );

WP_MEMORY_LIMIT משפיע על ה-Frontend ו-WP_MAX_MEMORY_LIMIT על ממשק הניהול. אם השינוי לא עוזר, ייתכן שיש מגבלה ברמת השרת ויש לפנות לחברת האחסון.

קביעת סכום הזמנה מינימלי בווקומרס

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

add_action( 'woocommerce_checkout_process', function() {
	$minimum = 50;
	if ( WC()->cart->get_subtotal() < $minimum ) {
		wc_add_notice(
			sprintf( 'סכום ההזמנה המינימלי הוא %s. סכום העגלה הנוכחי: %s.',
				wc_price( $minimum ),
				wc_price( WC()->cart->get_subtotal() )
			), 'error'
		);
	}
} );

add_action( 'woocommerce_before_cart', function() {
	$minimum = 50;
	if ( WC()->cart->get_subtotal() < $minimum ) {
		wc_print_notice(
			sprintf( 'סכום ההזמנה המינימלי הוא %s. הוסיפו מוצרים נוספים לעגלה.',
				wc_price( $minimum )
			), 'notice'
		);
	}
} );

החליפו 50 בסכום המינימלי הרצוי.

הסרת מוצרים קשורים בווקומרס

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

remove_action( 'woocommerce_after_single_product_summary', 'woocommerce_output_related_products', 20 );

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

add_filter( 'woocommerce_output_related_products_args', function( $args ) {
	$args['posts_per_page'] = 3;
	$args['columns'] = 3;
	return $args;
} );

הפניית HTTP ל-HTTPS באמצעות htaccess בוורדפרס

לאחר התקנת תעודת SSL, הוסיפו את הקוד הבא לקובץ .htaccess כדי להפנות את כל התעבורה מ-HTTP ל-HTTPS. לעוד על מדריך העברת אתר וורדפרס ל-HTTPS.

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

ודאו שהקוד נמצא בראש קובץ ה-.htaccess, לפני חוקי וורדפרס הקיימים.

ביטול WP-Cron ושימוש ב-Cron Job אמיתי

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

שלב 1 – הוסיפו ל-wp-config.php:

define( 'DISABLE_WP_CRON', true );

שלב 2 – הגדירו cron job בשרת (כל 5 דקות):

*/5 * * * * wget -q -O /dev/null https://your-domain.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1

החליפו your-domain.com בדומיין שלכם.

Savvy WordPress Development official logo