חיפוש

ארכיונים: Snippets | עמוד 4

הסרת סקריפטי oEmbed של וורדפרס

וורדפרס טוענת סקריפטי oEmbed להטמעת תוכן מ-YouTube, Twitter וכו'. אם אינכם משתמשים בהטמעות, הסירו אותם. לעוד טיפים על אופטימיזציית ביצועים.

remove_action( 'wp_head', 'wp_oembed_add_discovery_links' );
remove_action( 'wp_head', 'wp_oembed_add_host_js' );
remove_action( 'rest_api_init', 'wp_oembed_register_route' );
add_filter( 'embed_oembed_discover', '__return_false' );
add_filter( 'oembed_dataparse', '__return_false' );

הגבלת REST API למשתמשים מחוברים בלבד

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

add_filter( 'rest_authentication_errors', function( $result ) {
	if ( ! is_user_logged_in() ) {
		return new WP_Error( 'rest_not_logged_in', 'You must be logged in.', array( 'status' => 401 ) );
	}
	return $result;
} );

הוספת loading="lazy" ל-iframes

וורדפרס מוסיפה loading="lazy" לתמונות כברירת מחדל, אך לא ל-iframes (YouTube, מפות וכו'). הקוד הבא מוסיף lazy loading ל-iframes. לעוד טיפים על אופטימיזציה וביצועים.

add_filter( 'the_content', function( $content ) {
	return preg_replace( '/<iframe/', '<iframe loading="lazy"', $content );
} );

ביטול XML-RPC בוורדפרס

XML-RPC מאפשר חיבורים מרחוק לאתר הוורדפרס (למשל מהאפליקציה או Pingback). רוב האתרים לא צריכים אותו, והוא יכול לשמש להתקפות. לביטול, הוסיפו לקובץ functions.php. לעוד טיפים על אבטחת אתר וורדפרס.

add_filter( 'xmlrpc_enabled', '__return_false' );

ביטול WordPress Heartbeat API

ה-Heartbeat API של וורדפרס שולח בקשות AJAX לשרת כל 15-60 שניות (תלוי בהקשר – עורך, דשבורד וכו'). זה שימושי לשמירה אוטומטית ולניהול סשנים, אך על שרתי אחסון משותף יכול לגרום לעומס CPU גבוה. לעוד דרכים לשיפור מהירות האתר, תנו מבט במדריך Google PageSpeed למשתמשי וורדפרס.

אם אתם רוצים להאט את תדירות ה-Heartbeat או לבטל אותו לגמרי, הוסיפו את הקוד הבא לקובץ functions.php:

/**
 * Disable or slow down WordPress Heartbeat API
 */
add_action( 'init', function() {
	// Option 1: Disable Heartbeat completely
	wp_deregister_script( 'heartbeat' );

	// Option 2: Slow down Heartbeat to 60 seconds (uncomment and remove Option 1)
	// add_filter( 'heartbeat_settings', function( $settings ) {
	//     $settings['interval'] = 60;
	//     return $settings;
	// } );
}, 1 );

שימו לב: ביטול מלא של Heartbeat עלול להשפיע על שמירה אוטומטית בעורך הפוסטים. אם אתם צריכים את השמירה האוטומטית, השתמשו באופציה 2 (האטה ל-60 שניות) במקום ביטול מלא.

ביטול סקריפטי האימוג'י של וורדפרס

וורדפרס טוענת כברירת מחדל סקריפטים להצגת אימוג'י (wp-emoji-release.min.js וכו') בכל עמוד. רוב האתרים לא צריכים את זה, והסקריפטים מוסיפים בקשות HTTP מיותרות ומעט עומס.

כדי להסיר את סקריפטי האימוג'י, הוסיפו את הקוד הבא לקובץ functions.php:

/**
 * Remove WordPress emoji scripts
 */
remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
remove_action( 'admin_print_scripts', 'print_emoji_detection_script' );
remove_action( 'wp_print_styles', 'print_emoji_styles' );
remove_action( 'admin_print_styles', 'print_emoji_styles' );
remove_filter( 'the_content_feed', 'wp_staticize_emoji' );
remove_filter( 'comment_text_rss', 'wp_staticize_emoji' );
remove_filter( 'wp_mail', 'wp_staticize_emoji_for_email' );

add_filter( 'tiny_mce_plugins', function( $plugins ) {
	return is_array( $plugins ) ? array_diff( $plugins, array( 'wpemoji' ) ) : array();
} );

התוצאה: פחות בקשות HTTP ועמודים קלים יותר. לעוד טיפים לשיפור ביצועים, תנו מבט במדריך Google PageSpeed למשתמשי וורדפרס.

החרגת סוג תוכן (Post Type) מסוים ממפת האתר ב Rank Math

אם אתם משתמשים בתוסף Rank Math SEO כדי לשלוט על אילו סוגי תוכן ייכללו במפת האתר, ייתכן ונתקלתם בהגדרה "Include in Sitemap" תחת Rank Math SEO → Sitemap Settings → Post Types.

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

הפילטר מקבל שני פרמטרים: $exclude (ברירת מחדל false) ו-$type (שם סוג התוכן). החזרת true תחריג את סוג התוכן ממפת האתר.

/**
 * Filter decision if post type is excluded from the XML sitemap.
 *
 * @param bool   $exclude Default false.
 * @param string $type    Post type name.
 */
add_filter( 'rank_math/sitemap/exclude_post_type', function( $exclude, $type ){
	if ( 'snippet' === $type ) {
		return true;
	}
	return $exclude;
}, 10, 2 );

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

Savvy WordPress Development official logo