חיפוש ]

ארכיונים: סניפטים וקטעי קוד

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

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

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

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

הפילטר הזה יעקוף את ההגדרה "Include in Sitemap" שנמצאת תחת Rank Math SEO → Sitemap Settings → Post Types. : /** * Filter decision if post type is excluded from the XML sitemap. * * @param bool $exclude Default false. [...]

הפילטר הזה יעקוף את ההגדרה "Include in Sitemap" שנמצאת תחת Rank Math SEO → Sitemap Settings → Post Types.

:

/**
 * 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 ){
	return $exclude;
}, 10, 2 );

פילטר לשינוי בסיס כתובת ה־URL של מפת האתר ב- Rank Math

פילטר שמאפשר לשנות את בסיס כתובת ה־URL של מפת האתר (Sitemap) בתוסף Rank Math. בדוגמה הזו, כתובת מפת האתר תתחיל ב־search-sitemaps/ במקום הערך ברירת המחדל. /** * Filter to change the Sitemap URL Base * * @param string $base New [...]

פילטר שמאפשר לשנות את בסיס כתובת ה־URL של מפת האתר (Sitemap) בתוסף Rank Math. בדוגמה הזו, כתובת מפת האתר תתחיל ב־search-sitemaps/ במקום הערך ברירת המחדל.

/**
 * Filter to change the Sitemap URL Base
 *
 * @param string $base New URL Base
 */
add_filter( 'rank_math/sitemap/base_url', function( $base ){
	return 'search-sitemaps/';
}, 10, 1 );

פילטר לשינוי ה־Author base (כתובת המחבר) ב Rank Math

השתמשו בפילטר הזה כדי לשנות את בסיס כתובת ה־URL לארכיון מחברים ב Rank Math. כאשר מגדירים את בסיס המחבר באמצעות הפילטר הזה, ההגדרה של Author Base שבוצעה על ידי המשתמשים תחת Rank Math SEO → Titles & Meta → Authors [...]

השתמשו בפילטר הזה כדי לשנות את בסיס כתובת ה־URL לארכיון מחברים ב Rank Math. כאשר מגדירים את בסיס המחבר באמצעות הפילטר הזה, ההגדרה של Author Base שבוצעה על ידי המשתמשים תחת Rank Math SEO → Titles & Meta → Authors לא תשפיע כלל.

/**
 * Allow developers to change the author base.
 *
 * @param string $base The author base.
 */
add_filter( 'rank_math/author_base', function( $base ) {
 return $base;
});

פילטר לשינוי סדר ההצגה של Rank Math Metabox

למשתמשי Rank Math, השתמשו בפילטר הזה כדי לשנות את סדר ההצגה של Rank Math metabox ל־low, כך שהוא יופיע לאחר metaboxes אחרים כמו שדות של ACF. /** * Change the Rank Math Metabox Priority * * @param array $priority Metabox [...]

למשתמשי Rank Math, השתמשו בפילטר הזה כדי לשנות את סדר ההצגה של Rank Math metabox ל־low, כך שהוא יופיע לאחר metaboxes אחרים כמו שדות של ACF.

/**
 * Change the Rank Math Metabox Priority
 *
 * @param array $priority Metabox Priority.
 */
add_filter( 'rank_math/metabox/priority', function( $priority ) {
 return 'low';
});

ביטול ההודעה ACF now automatically escapes unsafe HTML

התוסף ACF בגירסה 6.2.5 ומעלה מציג הודעה בסגנון הבא: ACF now automatically escapes unsafe HTML when rendered by the_field or the ACF shortcode. אם אתם יודעים שהתוכן בשדות שלכם תקין ומעוניינים לבטל הודעה זו הוסיפו את הקוד הבא לקובץ functions.php: [...]

התוסף ACF בגירסה 6.2.5 ומעלה מציג הודעה בסגנון הבא: ACF now automatically escapes unsafe HTML when rendered by the_field or the ACF shortcode. אם אתם יודעים שהתוכן בשדות שלכם תקין ומעוניינים לבטל הודעה זו הוסיפו את הקוד הבא לקובץ functions.php:

function savvy_acf_remove_msg() {
	add_filter('acf/admin/prevent_escaped_html_notice', '__return_true');
	add_filter('acf/shortcode/allow_unsafe_html', '__return_true');
	add_filter('acf/the_field/allow_unsafe_html', '__return_true');
}
add_action('init', 'savvy_acf_remove_msg');

ביטול האפשרות המובנית של וורדפרס לניחוש כתובות URL

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

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

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

<?php

function sv_no_redirect_404($redirect_url)
{
	if (is_404()) {
		return false;
	}
	return $redirect_url;
}
add_filter('redirect_canonical', 'sv_no_redirect_404');

הסרת הסכמה של פירורי הלחם ש Yoast מוסיפה לעמודי האתר

אם אתם מעוניינים להסיר את הסכמה שהתוסף Yoast SEO מוסיף עבור פירורי הלחם (breadcrumbs), אז השתמשו בסניפט הבא: add_filter( 'wpseo_schema_graph_pieces', 'remove_breadcrumbs_from_schema', 11, 2 ); add_filter( 'wpseo_schema_webpage', 'remove_breadcrumbs_property_from_webpage', 11, 1 ); /** * Removes the breadcrumb graph pieces from the schema [...]

אם אתם מעוניינים להסיר את הסכמה שהתוסף Yoast SEO מוסיף עבור פירורי הלחם (breadcrumbs), אז השתמשו בסניפט הבא:

add_filter( 'wpseo_schema_graph_pieces', 'remove_breadcrumbs_from_schema', 11, 2 );
add_filter( 'wpseo_schema_webpage', 'remove_breadcrumbs_property_from_webpage', 11, 1 );

/**
 * Removes the breadcrumb graph pieces from the schema collector.
 *
 * @param array  $pieces  The current graph pieces.
 * @param string $context The current context.
 *
 * @return array The remaining graph pieces.
 */
function remove_breadcrumbs_from_schema( $pieces, $context ) {
    return \array_filter( $pieces, function( $piece ) {
        return ! $piece instanceof \Yoast\WP\SEO\Generators\Schema\Breadcrumb;
    } );
}

/**
 * Removes the breadcrumb property from the WebPage piece.
 *
 * @param array $data The WebPage's properties.
 *
 * @return array The modified WebPage properties.
 */
function remove_breadcrumbs_property_from_webpage( $data ) {
    if (array_key_exists('breadcrumb', $data)) {
        unset($data['breadcrumb']);
    }
    return $data;
}

קוד זה יסיר את BreadCrumbs Schema מכלל עמודי האתר. עליכם להוסיף סניפט זה לקובץ functions.php של התבנית שלכם. (עדיפות לתבנית הבת כמובן).
 

טקסונומיה (Custom Taxonomy) לא מוצגת בגוטנברג

אם יצרתם טקסונומיה לסוג תוכן מותאם (Custom Post Type) מסוים ואינכם רואים אותה כשאת עורכים את אותו CPT בגוטנברג, אז וודאו כי אתם מוסיפים את השורה 'show_in_rest' => true גם לארגומנטים של ה CPT וגם לאלו של הטקסונומיה.

אם יצרתם טקסונומיה לסוג תוכן מותאם (Custom Post Type) מסוים ואינכם רואים אותה כשאת עורכים את אותו CPT בגוטנברג, אז וודאו כי אתם מוסיפים את השורה 'show_in_rest' => true גם לארגומנטים של ה CPT וגם לאלו של הטקסונומיה.

טקסונומיה (Custom Taxonomy) לא מוצגת בגוטנברג

האם שינוי מבנה כתובת ה URL משפיע על SEO?

ג'ון מולר מסביר מה קורה כשמשנים את כתובות ה URL של אתרים, ואילו צעדים עליך לנקוט כדי לוודא שגוגל תוכל להוסיף את האתר לאינדקס.

ג'ון מולר מסביר מה קורה כשמשנים את כתובות ה URL של אתרים, ואילו צעדים עליך לנקוט כדי לוודא שגוגל תוכל להוסיף את האתר לאינדקס.

כיצד לנקות Cache או הוספת גירסה (Versioning) של הקובץ rtl.css

האם אתם טוענים את הקובץ rtl.css בדרך האוטומטית שוורדפרס מספקת? כלומר הוספת הקובץ rtl.css לספריית התבנית שלכם, כך שבמידה ושפת האתר מוגדרת כשפה מימין לשמאל (RTL) קובץ זה יטען אוטומטית, היא הדרך המעודפת לטעינת קובץ CSS ספציפי להגדרות CSS ספציפיות [...]

האם אתם טוענים את הקובץ rtl.css בדרך האוטומטית שוורדפרס מספקת? כלומר הוספת הקובץ rtl.css לספריית התבנית שלכם, כך שבמידה ושפת האתר מוגדרת כשפה מימין לשמאל (RTL) קובץ זה יטען אוטומטית, היא הדרך המעודפת לטעינת קובץ CSS ספציפי להגדרות CSS ספציפיות באתרי RTL.

אך קובץ זה אינו בעל גירסה (כלומר ללא query string), דבר המקשה על ניקוי הקאש בדפדפן ספציפית עבור קובץ זה (אם אינכם משתמשים בתוסף קאש כלשהו).

כך נראה אותו Query String עליו דיברתי

לכן, בכדי להוסיף את הפרמטר ver לאחר הקובץ rtl.css בהתאם לזמן בו שונה הקובץ לאחרונה, תוכלו להשתמש בפילטר הבא:

add_filter( 'locale_stylesheet_uri', function ($localized_stylesheet_uri) {
    $time_ver = filemtime( get_stylesheet_directory() . '/rtl.css' );
    return add_query_arg( array('ver' => $time_ver), $localized_stylesheet_uri );
});
Savvy WordPress Development