טרנד חדש שנתקלתי בו בלא מעט בלוגים הוא לשנות את סדר התגובות בפוסטים של וורדפרס כך שהתגובות האחרונות שנכתבו יופיעו למעלה. אם לפוסטים בבלוג שלכם ישנם הרבה תגובות האופציה הזו יכולה להיות מועדפת עליכם בכדי למנוע מצב בו התגובות האחרונות ״נקברות״ [...]
טרנד חדש שנתקלתי בו בלא מעט בלוגים הוא לשנות את סדר התגובות בפוסטים של וורדפרס כך שהתגובות האחרונות שנכתבו יופיעו למעלה. אם לפוסטים בבלוג שלכם ישנם הרבה תגובות האופציה הזו יכולה להיות מועדפת עליכם בכדי למנוע מצב בו התגובות האחרונות ״נקברות״ בחלק התחתון של הדף.
אסביר פה כיצד להפוך את סדר התגובות בוורדפרס.
אופציה ראשונה
גשו להגדרות > דיון. תחת הגדרות תגובות נוספות מצאו את ״ההגדרות הישנות יותר תוצגנה בתחילת העמוד״ ושנו את ההגדרה בהתאם.
אופציה שנייה
הוסיפו את הקוד הבא לקובץ functions.php
של התבנית שלכם:
function wpb_reverse_comments($comments) {
return array_reverse($comments);
}
add_filter ('comments_array', 'wpb_reverse_comments');
אנו משתמשים פה בפילטר comments_array בכדי להפוך את סדר התגובות.
זהו, מקווה שטיפ זה יעזור לכם כשתרצו להפוך את הסדר של התגובות באתר הוורדפרס שלכם.
לפעמים אנו מעוניינים לאפשר הרצה של קוד PHP בטקסט ווידג׳ט אך וורדפרס אינה מאפשרת זאת מטעמי אבטחה. ניתן לבצע זאת כמובן באמצעות תוספים כגון PHP text widget או PHP Code Widget אך מדוע להשתמש בפלאגינים כאשר אפשר לעשות זאת בעצמינו בשניות ספורות? [...]
לפעמים אנו מעוניינים לאפשר הרצה של קוד PHP בטקסט ווידג׳ט אך וורדפרס אינה מאפשרת זאת מטעמי אבטחה.
ניתן לבצע זאת כמובן באמצעות תוספים כגון PHP text widget או PHP Code Widget אך מדוע להשתמש בפלאגינים כאשר אפשר לעשות זאת בעצמינו בשניות ספורות? הפתרון אפילו מהיר יותר מאשר הזמן שייקח להתקנת התוסף. ערכו את הקובץ functions.php
והוסיפו את הקוד הבא:
if ( strpos( $html, "<" . "?php" ) !== false ) {
ob_start();
eval( "?" . ">" . $html );
$html = ob_get_contents();
ob_end_clean();
}
return $html;
}
add_filter( 'widget_text', 'php_execute', 100 );
נקו זכרון מטמון (Cache) בהנחה ואתם משתמשים בתוסף cache כגון WP-Rocket. בכדי לבדוק את הקוד הוסיפו ווידג׳ט טקסט ורשמו בפנים את הקוד הבא:
<?php echo 'שלום עולם !!!' ?>
עכשיו בדקו את המקום בו הוספתם את הווידג׳ט…
אם אנו כבר בנושא, אז בכדי לאפשר שורטקודים בטקסט ווידג׳ט הוסיפו את הקוד הבא לקובץ functions.php
:
add_filter('widget_text', 'do_shortcode');
האם ידעתם שוורדפרס יכולה לעדכן את האתר שלכם בצורה אוטומטית? מעבר ליתרונות הנוגעים לאבטחת וורדפרס ישנו סיכוי קטן שעדכונים אלו ישברו את האתר שלכם. אסביר פה כיצד לבטל עדכונים אוטומטיים בוורדפרס. עדכונים אוטמטיים לוורדפרס הוצגו לראשונה בוורדפרס גירסה 3.7 במטרה [...]
האם ידעתם שוורדפרס יכולה לעדכן את האתר שלכם בצורה אוטומטית? מעבר ליתרונות הנוגעים לאבטחת וורדפרס ישנו סיכוי קטן שעדכונים אלו ישברו את האתר שלכם. אסביר פה כיצד לבטל עדכונים אוטומטיים בוורדפרס.
עדכונים אוטמטיים לוורדפרס הוצגו לראשונה בוורדפרס גירסה 3.7 במטרה לשפר את האבטחה של האתרים. כברירת מחדל העדכון מוגבל לעדכונים מינורים בלבד למטרת אבטחה ותחזוקה, אך במקרים מסויימים וורדפרס יכולה לעדכן גם פלאגינים ותבניות.
הדרך הקלה ביותר לבטל את העדכונים האוטמטיים היא ע״י הורדה והתקנה של הפלאגין
Easy Updates Manager plugin
לאחר ההתקנה גשו להגדרות > Easy Updates Manager plugin בכדי לשנות את ההגדרות.
לחילופין אתם יכולים לבטל את העדכונים ע״י הוספת השורה הבאה לקובץ wp-config.php אשר נמצא בספרייה הראשית של האתר.
define( 'WP_AUTO_UPDATE_CORE', false );
לעומת זאת, אם ברצונכם לקבל עדכונים מינורים של וורדפרס עצמה אך לבטל את האפשרות של עדכון פלאגינים או תבניות בצורה אוטמטית, ניתן לעשות זאת ע״י הוספת הפילטרים הבאים לקובץ functions.php
של התבנית שלכם.
ביטול עדכון של פלאגינים:
add_filter( 'auto_update_plugin', '__return_false' );
ביטול עדכון של תבניות:
add_filter( 'auto_update_theme', '__return_false' );
לסיכום, אין בגדול סיבה מיוחדת לבטל את העדכונים האוטמטיים אלא אם ביצעתם שינויים לקבצי המקור של וורדפרס.
באחד מאתרי הוורדפרס האחרונים שבניתי ללקוח, התבקשתי לשנות את מיקום כפתור הוסף לעגלה ב Woocommerce. ניתן לבצע זאת ע״י קריאה לפעולה (action) באמצעות ההוק woocommerce_single_product_summary הפעולה עצמה מתבצעת בקובץ content-single-product.php: <?php /** * woocommerce_single_product_summary hook * * @hooked woocommerce_template_single_title - 5 * @hooked [...]
באחד מאתרי הוורדפרס האחרונים שבניתי ללקוח, התבקשתי לשנות את מיקום כפתור הוסף לעגלה ב Woocommerce. ניתן לבצע זאת ע״י קריאה לפעולה (action) באמצעות ההוק woocommerce_single_product_summary
הפעולה עצמה מתבצעת בקובץ content-single-product.php
:
<?php
/**
* woocommerce_single_product_summary hook
*
* @hooked woocommerce_template_single_title - 5
* @hooked woocommerce_template_single_price - 10
* @hooked woocommerce_template_single_excerpt - 20
* @hooked woocommerce_template_single_add_to_cart - 30
* @hooked woocommerce_template_single_meta - 40
* @hooked woocommerce_template_single_sharing - 50
*/
do_action( 'woocommerce_single_product_summary' );
?>
בקוד מעלה תמצאו תיאור של ההוק לפי חלקיו, כשהמספרים מציינים את העדיפות / הסדר של החלקים. ניתן אגב לשנות את העדיפות / הסדר על ידי הסרה והוספה מחדש של החלקים בצורה הבאה:
/** WooCommerce: change position of add-to-cart on single product **/
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
add_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 15 );
הוסיפו את הקוד הנ״ל לקובץ functions.php
בכדי להבין את התוצאה. שחקו עם העדיפות בכדי לשנות את מיקום כפתור הוסף לעגלה בווקומרס …
על מנת להסיר עמודים מתוצאות החיפוש הוסיפו את הקוד הבא לקובץ functions.php . ניתן גם להגביל את החיפוש ל Post Type מסויים ע״י שינוי המילה post בשורה 7 למזהה (slug) של ה Post Type שברצונכם להציג. /* Remove Pages from Search Results [...]
על מנת להסיר עמודים מתוצאות החיפוש הוסיפו את הקוד הבא לקובץ functions.php
. ניתן גם להגביל את החיפוש ל Post Type מסויים ע״י שינוי המילה post בשורה 7 למזהה (slug) של ה Post Type שברצונכם להציג.
/* Remove Pages from Search Results */
function filter_pages_from_search($query) {
if ($query->is_search) {
$query->set('post_type', 'post');
}
return $query;
}
add_filter('pre_get_posts','filter_pages_from_search');
לעומת זאת, בכדי לוודא שוורדפרס מחפשת גם בעמודים ולא רק בפוסטים השתמשו בקוד הבא:
/* Add Pages to Search Results */
function filter_pages_from_search($query) {
if ($query->is_search) {
$query->set('post_type', array('post', 'page'));
}
return $query;
}
add_filter('pre_get_posts','filter_pages_from_search');
לפני מספר ימים, התבקשתי מלקוח בעל אתר דו לשוני העובד עם התוסף WPML כי בתפריט האתר יופיע רק כפתור השפה שאינה פעילה כרגע, לעומת המצב הדיפולטיבי בו מופיעות כל השפות. כלומר, מהמצב הזה: או הזה: להגיע למצב הזה: זה הטריק… [...]
לפני מספר ימים, התבקשתי מלקוח בעל אתר דו לשוני העובד עם התוסף WPML כי בתפריט האתר יופיע רק כפתור השפה שאינה פעילה כרגע, לעומת המצב הדיפולטיבי בו מופיעות כל השפות.
כלומר, מהמצב הזה:
או הזה:
להגיע למצב הזה:
זה הטריק… הוסיפו את הקוד הבא ל functions.php
:
/* Showing only non active language on menu */
add_filter('wp_nav_menu_items', 'new_nav_menu_items', 10, 2);
function new_nav_menu_items($items, $args) {
if (function_exists('icl_get_languages')) {
$languages = icl_get_languages('skip_missing=0');
if(!empty($languages)){
foreach($languages as $l){
if(!$l['active']){
// flag with native name
$items = $items . '<li class="menu-item"><a href="' . $l['url'] . '"><img src="' . $l['country_flag_url'] . '" height="12" alt="' . $l['language_code'] . '" width="18" /> ' . $l['native_name'] . '</a></li>';
}
}
}
}
return $items;
}
רוב הבלוגרים מנסים לעקוב אחרי לוח זמנים של פרסום פוסטים. הם מפרסמים פעם בחודש, פעם בשבוע או פעם ביום. בוורדפרס, אתה יכול לתזמן פרסום פוסט שנכתב בשעה ובתאריך מסוים, כך שאתה לא צריך להיות מול במחשב שלך בכדי לפרסם את [...]
רוב הבלוגרים מנסים לעקוב אחרי לוח זמנים של פרסום פוסטים. הם מפרסמים פעם בחודש, פעם בשבוע או פעם ביום. בוורדפרס, אתה יכול לתזמן פרסום פוסט שנכתב בשעה ובתאריך מסוים, כך שאתה לא צריך להיות מול במחשב שלך בכדי לפרסם את הפוסט.
בלוח הבקרה של וורדפרס גש לפוסט אותו הינך מעוניין לתזמן.בצד שמאל למעלה, גשו לסקשיין ״לפרסם״, ותמצאו אופציה שנקראית ״פרסום : מיידי״.
שנו את התאריך לזמן העתידי בו אתם מעוניינים כי הפוסט יפורסם, לחצו אישור ופרסמו את הפוסט. זהו, הפוסט יפורסם בתאריך ובשעה שקבעתם.
בכדי ליצור עמוד מותאם אישית (page tamplate) כעמוד בית בוורדפרס, שכפלו את page.php אשר נמצא בתיקיה הראשית של התבנית או צרו קובץ php חדש והוסף את הקוד הבא בחלקו העליון: <?php /* Template Name: xxxxxx */ ?> כאשר xxxxxx זה [...]
בכדי ליצור עמוד מותאם אישית (page tamplate) כעמוד בית בוורדפרס, שכפלו את page.php
אשר נמצא בתיקיה הראשית של התבנית או צרו קובץ php
חדש והוסף את הקוד הבא בחלקו העליון:
<?php /* Template Name: xxxxxx */ ?>
כאשר xxxxxx זה השם שיופיע תחת ״מאפייני עמוד״ כשתיצרו עמוד חדש ותו לא.
עבור לפנל הניהול שלך וורדפרס, צור דף חדש ובחר תבנית זו.
לאחר שפורסמת בדף זה ללכת להגדרות > קריאה בממשק הניהול של וורדפרס.
בחר את העמוד שלך להיות העמוד הראשי. זהו, יש ברשותך עמוד בית מותאם אישית. תנו מבט בפוסט הבא המדבר בהרחבה על תבניות עמוד בוורדפרס (Page Templates).
לפני מספר שבועות נתקלתי במצב בו לקוח מעוניין כי במקום הטקסט ׳הוסף לעגלה׳ או ׳הוסף לסל׳ הסטנדרטי של ווקומרס, יופיע טקסט אחר/ הנה הקוד אשר צריך להוסיף ב functions.php בכדי לשנות את הטקסט: add_filter( 'woocommerce_product_single_add_to_cart_text', 'woo_custom_cart_button_text' ); // 2.1 + [...]
לפני מספר שבועות נתקלתי במצב בו לקוח מעוניין כי במקום הטקסט ׳הוסף לעגלה׳ או ׳הוסף לסל׳ הסטנדרטי של ווקומרס, יופיע טקסט אחר/ הנה הקוד אשר צריך להוסיף ב functions.php
בכדי לשנות את הטקסט:
add_filter( 'woocommerce_product_single_add_to_cart_text', 'woo_custom_cart_button_text' ); // 2.1 +
function woo_custom_cart_button_text() {
return __( 'My Button Text', 'woocommerce' );
}
השבוע ניסיתי לעדכן תבנית באתר וורדפרס ונתקלתי בהודעת שגיאה Fatal Error: Maximum Execution Time Exceeded in WordPress. הפתרון במקרה זה הוא נורא פשוט, אך עשוי להיות מתסכל למתחילים. אראה לכם כיצד לתקן את השגיאה Maximum Execution Time Exceeded בוורדפרס. שפת הקוד שוורדפרס [...]
השבוע ניסיתי לעדכן תבנית באתר וורדפרס ונתקלתי בהודעת שגיאה Fatal Error: Maximum Execution Time Exceeded in WordPress. הפתרון במקרה זה הוא נורא פשוט, אך עשוי להיות מתסכל למתחילים. אראה לכם כיצד לתקן את השגיאה Maximum Execution Time Exceeded בוורדפרס.
שפת הקוד שוורדפרס בנויה עליו ברובה היא php, בכדי להגן על השרתים קיימת הגבלה לזמן שסקריפט מסויים ב php יכול לרוץ. חברות אחסון מסויימות מאפשרות זמן הרצה גבוה ואחרות מגבילות אותו לזמן קצר יותר. כאשר הסקריפט מגיע להגבלה, מתקבלת הודעה זו.
כיצד פותרים זאת?
בכדי לשנות את הגבלת הזמן של הרצת סקריפטים ב php, התחברו ב ftp לשרת שלכם, מצאו את קובץ htaccess
שנמצא באותו מיקום בו נמצאות הספריות wp-content
ו wp-admin
. ערכו את הקובץ והוסיפו את השורה:
<IfModule mod_php7.c>
php_value max_execution_time 300
</IfModule>
הקוד פשוט מגדיר כי זמן ההרצה יהיה 300 שניות (5 דקות), אתם יכולים לשנות אותו כרצונכם. לצורך העניין, תבנית Avada בגירסת 3.8 דורשת להגדיר לפחות 180 שניות על מנת לעבוד בצורה תקינה.
*עליכם לשים לב לגירסת ה PHP בקוד המצורף