אם אתם מעוניינים להפנות משתמשים שמגיעים לעמוד לא קיים (404) לעמוד הבית, הוסיפו את הקוד הבא. שימו לב: גוגל ממליצה להציג עמוד 404 מותאם. לעוד על מה גורם לשגיאות 404 וכיצד לטפל בהן.
add_action( 'template_redirect', function() {
if ( is_404() ) {
wp_redirect( home_url(), 302 );
exit;
}
} );
לעיתים תרצו שמנועי חיפוש לא יאנדקסו סוג תוכן מסוים (למשל דפי נחיתה). הקוד הבא מוסיף noindex, nofollow ל-CPT ספציפי. לעוד על מניעת אינדוקס של עמודי חיפוש.
add_action( 'wp_head', function() {
if ( is_singular( 'your_post_type' ) ) {
echo '<meta name="robots" content="noindex, nofollow">' . "n";
}
} );
החליפו your_post_type ב-slug של ה-CPT.
HPOS (High-Performance Order Storage) משפר ביצועי הזמנות בווקומרס. ניתן להפעיל דרך קוד. לעוד על האפשרות HPOS באתרי ווקומרס.
add_action( 'before_woocommerce_init', function() {
if ( class_exists( AutomatticWooCommerceUtilitiesFeaturesUtil::class ) ) {
AutomatticWooCommerceUtilitiesFeaturesUtil::declare_compatibility( 'custom_order_tables', __FILE__, true );
}
} );
לאחר מכן הפעילו ב-WooCommerce > Settings > Advanced > Features.
אם תרצו להשתמש בעורך הקלאסי (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;
} );
XML-RPC מאפשר חיבורים מרחוק לאתר הוורדפרס (למשל מהאפליקציה או Pingback). רוב האתרים לא צריכים אותו, והוא יכול לשמש להתקפות. לביטול, הוסיפו לקובץ functions.php. לעוד טיפים על אבטחת אתר וורדפרס.
add_filter( 'xmlrpc_enabled', '__return_false' );
וורדפרס טוענת כברירת מחדל סקריפטים להצגת אימוג'י (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 למשתמשי וורדפרס.
ה-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 שניות) במקום ביטול מלא.
אם אתם משתמשים בתוסף 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' בשם סוג התוכן הרלוונטי עבורכם.