כולנו מסכימים שתוספי וורדפרס מועילים ומקלים עלינו בהמון סיטואציות. אך ייתכן ומספר שורות בקובץ functions.php של התבנית שלכם יחסוך מכם את הצורך להוסיף פלאגין נוסף לאתר שלכם.
בארכיון זה תמצאו מגוון רחב של סניפטים וקטעי קוד (Code Snippets) המאפשרים שינויים ומודיפיקציה לוורדפרס ולאופן פעולתה. אלו בעצם קטעי קוד קצרים וקולעים שנאספו במרוצת השנים.
בכל פעם שאני נתקל בקטע קוד שימושי אני מוסיפו למאגר, אז אם יש לכם סניפט מסויים שאתם מעוניינים לשתף, אשמח אם תשלחו אותו ואוסיפו למכלול הסניפטים.
סניפט מאד שימושי המאפשר להגביל את מספר השורות של טקסט מסויים באמצעות CSS בלבד. נעשה זאת באמצעות התכונה line-blamp ב CSS ובאופן הבא:
.text {
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2; /* number of lines to show */
-webkit-box-orient: vertical;
}
וזה ה Markup למשל:
<div class="text">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam consectetur venenatis blandit. Praesent vehicula, libero non pretium vulputate, lacus arcu facilisis lectus, sed feugiat tellus nulla eu dolor. Nulla porta bibendum lectus quis euismod. Aliquam volutpat ultricies porttitor. Cras risus nisi, accumsan vel cursus ut, sollicitudin vitae dolor. Fusce scelerisque eleifend lectus in bibendum. Suspendisse lacinia egestas felis a volutpat.
</div>
היום ניתן מבט על עמוד התשלום של ווקמורס וספציפית נראה כיצד לבטל צורת תשלום מסויימת לקוח בהתאם לשיטת המשלוח אותה הוא בחר. למשל ביטול ״תשלום בהמחאה״ לשיטת המשלוח ״איסוף מקומי״.
בכל מקרה הינה קוד סניפט המאפשר לעשות משהו בסגנון (functions.php):
/**
* @snippet ביטול צורת תשלום מסויימת עבור שיטת משלוח ספציפית
* @author Roee Yossef
* @website https://savvy.co.il
*/
function sv_gateway_disable_shipping_326( $available_gateways ) {
if ( ! is_admin() ) {
$chosen_methods = WC()->session->get( 'chosen_shipping_methods' );
$chosen_shipping = $chosen_methods[0];
if ( isset( $available_gateways['cod'] ) && 0 === strpos( $chosen_shipping, 'local_pickup' ) ) {
unset( $available_gateways['cod'] );
}
}
return $available_gateways;
}
add_filter( 'woocommerce_available_payment_gateways', 'sv_gateway_disable_shipping_326' );
אם אתם משתמשים ב PayPal כאפשרות רכישה בעמוד התשלום של ווקומרס, דעו כי באפשרותכם להחליף את הלוגו של פייפאל המוצג בעמוד התשלום. הוסיפו את הקוד הבא לקובץ functions.php של התבנית שלכם:
הקוד הבא מאפשר לכם להאריך את משך הזמן שלוקח עד שוורדפרס מנתקת אתכם אוטומטית מהמערכת, כלומר מממשק הניהול של וורדפרס (Automatic Logout). הוסיפו את הקוד לקובץ functions.php של התבנית שלכם:
function keep_me_logged_in_for_1_year( $expirein ) {
return 31556926; // 1 year in seconds
}
add_filter( 'auth_cookie_expiration', 'keep_me_logged_in_for_1_year' );
באפשרותכם להסתיר ממשתמש מסויים תפריטים הקיימים בלוח הבקרה של וורדפרס. החליפו את username בשם המשתמש של האדם ממנו אתם רוצים להסתיר את אותם התפריטים ובזאת סיימתם:
function remove_menus()
{
global $menu;
global $current_user;
get_currentuserinfo();
if($current_user->user_login == 'username')
{
$restricted = array(__('Posts'),
__('Media'),
__('Links'),
__('Pages'),
__('Comments'),
__('Appearance'),
__('Plugins'),
__('Users'),
__('Tools'),
__('Settings')
);
end ($menu);
while (prev($menu)) {
$value = explode(' ',$menu[key($menu)][0]);
if(in_array($value[0] != NULL ? $value[0] : "" , $restricted)) {
unset($menu[key($menu)]);
}
} // end while
} // end if
}
add_action('admin_menu', 'remove_menus');
הסניפט הבא יאפשר לכם להסיר תיבות Meta Box ספציפיות מהעמוד הראשי בלוח הבקרה (Dashboard) של וורדפרס. מדובר על ה Meta Boxes הדיפולטיביות המוצגות לנו בעמוד הראשי של ממשק הניהול.
בכדי לבטל או לשנות אילו תיבות יוצגו – הוסיפו את הסניפט לקובץ functions.php בתבנית שלכם ובחרו איזה תיבות להסיר:
function my_custom_dashboard_widgets()
{
global $wp_meta_boxes;
// Main column (left):
// Browser Update Required
unset($wp_meta_boxes['dashboard']['normal']['high']['dashboard_browser_nag']);
// PHP Update Required
unset($wp_meta_boxes['dashboard']['normal']['high']['dashboard_php_nag']);
// Right Now - Comments, Posts, Pages at a glance
unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_right_now']);
// Right Now
unset($wp_meta_boxes['dashboard']['normal']['core']['network_dashboard_right_now']);
// Activity
unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_activity']);
// Site Health Status
unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_site_health']);
// Side Column (right):
// WordPress Events and News
unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']);
// Quick Draft, Your Recent Drafts
unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_quick_press']);
// Recent Comments
unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_recent_comments']);
// Incoming Links
unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_incoming_links']);
// Plugins - Popular, New and Recently updated WordPress Plugins
unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_plugins']);
// Other WordPress News Feed
unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']);
// Recent Drafts List
unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_recent_drafts']);
}
add_action('wp_dashboard_setup', 'my_custom_dashboard_widgets');
אם אתם מעוניינים שעמודי ארכיון הקטגוריות בוורדפרס יציגו את כל הפוסטים הקיימים, ולא משנה לאיזה סוג תוכן אותם פוסטים שייכים, הוסיפו את הקוד הבא לקובץ functions.php:
function any_ptype_on_cat($request) {
if ( isset($request['category_name']) )
$request['post_type'] = 'any';
return $request;
}
add_filter('request', 'any_ptype_on_cat');
הקוד הבא יציג לכם בפוטר את מספר הקריאות (השאילתות) שהעמוד הנבדק ביצע למסד הנתונים (DB Queries), את הזמן שלקח לבצע שאילתות אלו ואת צריכת הזכרון של העמוד המדובר.
הקוד הבא יוסיף תיבה חדשה בלוח הבקרה של וורדפרס (Dashboard). כמובן שבאפשרותכם לקבוע איזה תוכן יופיע בתיבה זו. יש להוסיף קוד זה לקובץ functions.php בתבנית שלכם:
add_action('wp_dashboard_setup', 'my_custom_dashboard_widgets');
function my_custom_dashboard_widgets() {
wp_add_dashboard_widget('custom_help_widget', 'Help and Support', 'custom_dashboard_help');
}
function custom_dashboard_help() {
echo '<p>Lorum ipsum delor sit amet et nunc</p>';
}