אם תרצו להשתמש בעורך הקלאסי (Classic Editor) עבור CPT מסוים, הוסיפו את הקוד הבא. לעוד על יצירת סוגי תוכן מותאמים.
add_filter( 'use_block_editor_for_post_type', function( $use, $post_type ) {
if ( $post_type === 'your_post_type' ) {
return false;
}
return $use;
}, 10, 2 );
החליפו your_post_type ב-slug של ה-CPT.
וורדפרס טוענת סקריפטי 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' );
וורדפרס מוסיפה logged-in ל-body כשמשתמש מחובר, אך רק בממשק הניהול. הקוד הבא מוסיף class גם ב-Frontend. שימושי לעיצוב מותאם או הצגת תוכן שונה. לעוד על הוקים ופילטרים בוורדפרס.
add_filter( 'body_class', function( $classes ) {
if ( is_user_logged_in() ) {
$classes[] = 'logged-in-user';
}
return $classes;
} );
ה-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;
} );
preconnect מאפשר לדפדפן להתחיל חיבור לשרת חיצוני מוקדם יותר, ולקצר את זמן הטעינה. שימושי עבור Google Fonts, CDN ועוד. הוסיפו ל-header.php או דרך wp_head. לעוד על שיפור מהירות טעינת Google Fonts עם preconnect.
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
וורדפרס מוסיפה loading="lazy" לתמונות כברירת מחדל, אך לא ל-iframes (YouTube, מפות וכו'). הקוד הבא מוסיף lazy loading ל-iframes. לעוד טיפים על אופטימיזציה וביצועים.
add_filter( 'the_content', function( $content ) {
return preg_replace( '/<iframe/', '<iframe loading="lazy"', $content );
} );
XML-RPC מאפשר חיבורים מרחוק לאתר הוורדפרס (למשל מהאפליקציה או Pingback). רוב האתרים לא צריכים אותו, והוא יכול לשמש להתקפות. לביטול, הוסיפו לקובץ functions.php. לעוד טיפים על אבטחת אתר וורדפרס.
add_filter( 'xmlrpc_enabled', '__return_false' );
ה-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 למשתמשי וורדפרס.
אם אתם משתמשים בתוסף 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' בשם סוג התוכן הרלוונטי עבורכם.