ארכיון: סניפטים וקטעי קוד | עמוד 9

כיצד לאפשר העלאת קבצי SVG דרך ספריית המדיה

בכדי לאפשר העלאת קבצי SVG דרך ספריית המדיה, הוסיפו את הקוד הבא לקובץ functions.php:

function cc_mime_types($mimes) {
  $mimes['svg'] = 'image/svg+xml';
  return $mimes;
}
add_filter('upload_mimes', 'cc_mime_types');

הסבר מפורט יותר ניתן למצוא בפוסט הבא.

מיקוד CSS בהתאם לדפדפן

נראה כיצד למקד CSS selectors לפי סוג הדפדפן וגירסתו.

/***** Selector Hacks ******/

/* IE6 and below */
* html #uno  { color: red }
 
/* IE7 */
*:first-child+html #dos { color: red } 
 
/* IE7, FF, Saf, Opera  */
html>body #tres { color: red }
 
/* IE8, FF, Saf, Opera (Everything but IE 6,7) */
html>/**/body #cuatro { color: red }
 
/* Opera 9.27 and below, safari 2 */
html:first-child #cinco { color: red }
 
/* Safari 2-3 */
html[xmlns*=""] body:last-child #seis { color: red }
 
/* safari 3+, chrome 1+, opera9+, ff 3.5+ */
body:nth-of-type(1) #siete { color: red }
 
/* safari 3+, chrome 1+, opera9+, ff 3.5+ */
body:first-of-type #ocho {  color: red }
 
/* saf3+, chrome1+ */
@media screen and (-webkit-min-device-pixel-ratio:0) {
 #diez  { color: red  }
}
 
/* iPhone / mobile webkit */
@media screen and (max-device-width: 480px) {
 #veintiseis { color: red  }
}
 
/* Safari 2 - 3.1 */
html[xmlns*=""]:root #trece  { color: red  }
 
/* Safari 2 - 3.1, Opera 9.25 */
*|html[xmlns*=""] #catorce { color: red  }
 
/* Everything but IE6-8 */
:root *> #quince { color: red  }
 
/* IE7 */
*+html #dieciocho {  color: red }
 
/* Firefox only. 1+ */
#veinticuatro,  x:-moz-any-link  { color: red }
 
/* Firefox 3.0+ */
#veinticinco,  x:-moz-any-link, x:default  { color: red  }
 
 
 
/***** Attribute Hacks ******/
 
/* IE6 */
#once { _color: blue }
 
/* IE6, IE7 */
#doce { *color: blue; /* or #color: blue */ }
 
/* Everything but IE6 */
#diecisiete { color/**/: blue }
 
/* IE6, IE7, IE8 */
#diecinueve { color: blue\9; }
 
/* IE7, IE8 */
#veinte { color/*\**/: blue\9; }
 
/* IE6, IE7 -- acts as an !important */
#veintesiete { color: blue !ie; } /* string after ! can be anything */

הגדרת תמונה ראשית לפוסט בצורה אוטומטית

הסניפט הבא ייקח את התמונה הראשונה שהוא מוצא בפוסט ויגדיר אותה כתמונה ראשית (featured image). במידה ותבחרו תמונה ראשית הוא יראה אותה כמובן.

function autoset_featured() {
          global $post;
          $already_has_thumb = has_post_thumbnail($post->ID);
              if (!$already_has_thumb)  {
              $attached_image = get_children( "post_parent=$post->ID&post_type=attachment&post_mime_type=image&numberposts=1" );
                          if ($attached_image) {
                                foreach ($attached_image as $attachment_id => $attachment) {
                                set_post_thumbnail($post->ID, $attachment_id);
                                }
                           }
                        }
      }
add_action('the_post', 'autoset_featured');
add_action('save_post', 'autoset_featured');
add_action('draft_to_publish', 'autoset_featured');
add_action('new_to_publish', 'autoset_featured');
add_action('pending_to_publish', 'autoset_featured');
add_action('future_to_publish', 'autoset_featured');

ביטול הודעת השגיאה במסך הכניסה של וורדפרס

כאשר משתמשים מכניסים שם משתמש או סיסמא שאינם נכונים, מופיעה הודעת שגיאה שאומרת להם איזה מאלו שגויים. בהנחה ומישהו מנסה לפרוץ לאתר שלכם על ידי ניחוש אחד מאלו, הודאת שגיאה זו יכולה לעזור להבין במה שגה. חסמו זאת על ידי הוספת שורה זו לקובץ functions.php:

add_filter('login_errors',create_function('$a', "return null;"));

קביעת ברירת מחדל למצב עריכת פוסט וורדפרס

ישנם כאלו שמעדיפים לעבוד עם העורך הויזואלי (visual editor) כשהם כותבים פוסט וכאלו שמעדיפים את עורך הטקסט (text editor). שנו את ברירת המחדל בעריכת פוסט על הוספת שורות לקובץ functions.php.

# Visual Editor as default
add_filter( 'wp_default_editor', create_function('', 'return "tinymce";') );

# HTML Editor as default
add_filter( 'wp_default_editor', create_function('', 'return "html";') );

איך לאפשר תגובות בסוגי תוכן מותאמים (custom post types)

כברירת מחדל וורדפרס חוסמת את אפשרות התגובות בסוגי תוכן מותאמים (custom post types). על מנת לאפשר תגובות בפוסט מותאם אישית הוסיפו את האפשרות של comments תחת supports היכן שאתם מגדירים אותו (שורה 32).

function snippet_custom_init() {
      $labels = array(
          'name' => 'סניפט',
          'singular_name' => 'סניפט',
          'add_new' => 'הוסף סניפט חדש',
          'add_new_item' => 'הוסף סניפט חדש',
          'edit_item' => 'ערוך סניפט',
          'new_item' => 'סניפט חדש',
          'all_items' => 'כל הסניפטים',
          'view_item' => 'הצג סניפט',
          'search_items' => 'חפש סניפט',
          'not_found' =>  'לא נמצא סניפט',
          'not_found_in_trash' => 'לא נמצא סניפט בפח',
          'parent_item_colon' => '',
          'menu_name' => 'סניפטס',
          );

      $args = array(
          'labels' => $labels,
          'exclude_from_search' => false,
          'public' => true,
          'publicly_queryable' => true,
          'show_ui' => true,
          'show_in_menu' => true,
          'query_var' => true,
          'rewrite' => array( 'slug' => 'סניפט' ),
          'capability_type' => 'post',
          'has_archive' => true,
          'hierarchical' => false,
          'taxonomies' => array('category'),
          'menu_position' => null,
          'supports' => array( 'title', 'author', 'thumbnail', 'excerpt', 'comments', 'editor' )
          );

        register_post_type( 'snippet', $args );
    }
add_action( 'init', 'snippet_custom_init', 0);

כיצד להפוך את סדר התגובות בוורדפרס ?

איך להפוך את סדר התגובות בוורדפרס ?

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

אסביר פה כיצד להפוך את סדר התגובות בוורדפרס.

אופציה ראשונה

גשו להגדרות > דיון. תחת הגדרות תגובות נוספות מצאו את ״ההגדרות הישנות יותר תוצגנה בתחילת העמוד״ ושנו את ההגדרה בהתאם.

להפוך את סדר התגובות בוורדפרס

אופציה שנייה

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

function wpb_reverse_comments($comments) {
		return array_reverse($comments);
	}	
add_filter ('comments_array', 'wpb_reverse_comments');

אנו משתמשים פה בפילטר comments_array בכדי להפוך את סדר התגובות.

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

כיצד לאפשר הרצה של קוד PHP בטקסט ווידג׳ט?

הרצת PHP בטקסט ווידג׳ט – וורדפרס

לפעמים אנו מעוניינים לאפשר הרצה של קוד 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 במטרה לשפר את האבטחה של האתרים. כברירת מחדל העדכון מוגבל לעדכונים מינורים בלבד למטרת אבטחה ותחזוקה, אך במקרים מסויימים וורדפרס יכולה לעדכן גם פלאגינים ותבניות.

הדרך הקלה ביותר לבטל את העדכונים האוטמטיים היא ע״י הורדה והתקנה של הפלאגין
Easy Updates Manager plugin

לאחר ההתקנה גשו להגדרות > Easy Updates Manager plugin בכדי לשנות את ההגדרות.

disableupdatesmanager

לחילופין אתם יכולים לבטל את העדכונים ע״י הוספת השורה הבאה לקובץ 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

באחד מאתרי הוורדפרס האחרונים שבניתי ללקוח, התבקשתי לשנות את מיקום כפתור הוסף לעגלה ב 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 */

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 כי בתפריט האתר יופיע רק כפתור השפה שאינה פעילה כרגע, לעומת המצב הדיפולטיבי בו מופיעות כל השפות.

כלומר, מהמצב הזה:
inactive_lang2
או הזה:
inactive_lang1
להגיע למצב הזה:
inactive_lang

זה הטריק… הוסיפו את הקוד הבא ל 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;
}

כיצד לתזמן פרסום פוסטים בעתיד?

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

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

future_post_publish

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

יצירת עמוד מותאם אישית (page tamplate) כעמוד בית

אז איך יוצרים עמוד מותאם אישית (page template) כעמוד בית בוורדפרס?

בכדי ליצור עמוד מותאם אישית (page tamplate) כעמוד בית בוורדפרס, שכפלו את page.php אשר נמצא בתיקיה הראשית של התבנית או צרו קובץ php חדש והוסף את הקוד הבא בחלקו העליון:

<?php /* Template Name: xxxxxx */ ?>

כאשר xxxxxx זה השם שיופיע תחת ״מאפייני עמוד״ כשתיצרו עמוד חדש ותו לא.

עבור לפנל הניהול שלך וורדפרס, צור דף חדש ובחר תבנית זו.

דף בית מותאם אישית - וורדפרס

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

עמוד בית מותאם אישית - וורדפרס

בחר את העמוד שלך להיות העמוד הראשי. זהו, יש ברשותך עמוד בית מותאם אישית. תנו מבט בפוסט הבא המדבר בהרחבה על תבניות עמוד בוורדפרס (Page Templates).