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

ביטול הווידג׳טים הדיפולטיבים של וורדפרס

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

// Unregister all default WordPress Widgets
function unregister_default_wp_widgets() {
    unregister_widget('WP_Widget_Pages');
    unregister_widget('WP_Widget_Calendar');
    unregister_widget('WP_Widget_Archives');
    unregister_widget('WP_Widget_Links');
    unregister_widget('WP_Widget_Meta');
    unregister_widget('WP_Widget_Search');
    unregister_widget('WP_Widget_Text');
    unregister_widget('WP_Widget_Categories');
    unregister_widget('WP_Widget_Recent_Posts');
    unregister_widget('WP_Widget_Recent_Comments');
    unregister_widget('WP_Widget_RSS');
    unregister_widget('WP_Widget_Tag_Cloud');
}
add_action('widgets_init', 'unregister_default_wp_widgets', 1);

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

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

function sv_performance( $visible = false ) {

    $stat = sprintf( '%d queries in %.3f seconds, using %.2fMB memory',
        get_num_queries(),
        timer_stop( 0, 3 ),
        memory_get_peak_usage() / 1024 / 1024
    );

    echo $visible ? $stat : "<!-- {$stat} -->" ;
}

add_action( 'wp_footer', 'sv_performance', 20 );

התוצאה תופיע כהערה בפוטר. בדקו את קוד המקור של העמוד בכדי לראות אותה:

<!-- 33 queries in 1.532 seconds, using 48.75MB memory -->

הוספת תמונה ראשית לעמודת הפוסטים בממשק הניהול של וורדפרס

מעוניינים לדעת כיצד להציג את התמונה הראשית (featured image) ליד כל פוסט ועמוד כשאתם צופים ברשימת הפוסטים או העמודים בממשק הניהול של וורדפרס?

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

function posts_columns($defaults){
    $defaults['sv_post_thumbs'] = __('תמונה');
    return $defaults;
}

function posts_custom_columns($column_name, $id){
    if($column_name === 'sv_post_thumbs'){
        the_post_thumbnail( 'thumbnail' );
    }
}

add_filter('manage_posts_columns', 'posts_columns', 5);
add_action('manage_posts_custom_column', 'posts_custom_columns', 5, 2);

התוצאה תראה כנראה משהו בסגנון הבא:

הוספת תמונה ראשית לעמודת הפוסטים בממשק הניהול של וורדפרס

הוספת שדות נוספים לעמוד פרופיל המשתמש

הוסיפו את הקוד הבא לקובץ functions.php בכדי להוסיף שדות משלכם לעמוד פרופיל המשתמש בלוח הבקרה של וורדפרס.


// CUSTOM USER PROFILE FIELDS
function my_custom_userfields( $contactMethods ) {

    // ADD CONTACT CUSTOM FIELDS
    $contactMethods['contact_phone_office']     = 'Office Phone';
    $contactMethods['contact_phone_mobile']     = 'Mobile Phone';
    $contactMethods['contact_office_fax']       = 'Office Fax';

    // ADD ADDRESS CUSTOM FIELDS
    $contactMethods['address_line_1']       = 'Address Line 1';
    $contactMethods['address_line_2']       = 'Address Line 2 (optional)';
    $contactMethods['address_city']         = 'City';
    $contactMethods['address_state']        = 'State';
    $contactMethods['address_zipcode']      = 'Zipcode';
}
add_filter('user_contactmethods','my_custom_userfields',10,1);

בכדי להציג שדות אלו ניתן להשתמש באחת מהמתודות הבאות:

the_author_meta('facebook', $current_author->ID)
<?php $current_author = get_userdata(get_query_var('author')); ?>
<p><a href="<?php echo esc_url($current_author->contact_phone_office);?>" title="office_phone"> Office Phone</a></p>

הוספת ווידג׳ט (תיבה חדשה) בלוח הבקרה של וורדפרס

הקוד הבא יוסיף תיבה חדשה בלוח הבקרה של וורדפרס (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 '&lt;p&gt;Lorum ipsum delor sit amet et nunc&lt;/p&gt;';
}

וזה נראה כך:

הוספת ווידג׳ט (תיבה חדשה) בלוח הבקרה של וורדפרס

עיכוב פרסום הפוסטים ב RSS Feed

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

// Delay feed update
function publish_later_on_feed($where) {
    global $wpdb;

    if (is_feed()) {
        // Timestamp in WordPress format
        $now = gmdate('Y-m-d H:i:s');

        // Value for wait; + device
        $wait = '10'; // integer

        // http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_timestampdiff
        $device = 'MINUTE'; // MINUTE, HOUR, DAY, WEEK, MONTH, YEAR

        // Add SQL syntax to default $where
        $where .= " AND TIMESTAMPDIFF($device, $wpdb->posts.post_date_gmt, '$now') > $wait ";
    }
    return $where;
}
add_filter('posts_where', 'publish_later_on_feed');

הוספת סוגי תוכן מותאמים (CPT's) ל RSS feed כברירת מחדל

בכדי להוסיף סוגי תוכן מותאמים (Custom Post Types) ל RSS feed הראשי של האתר כברירת מחדל, עליכם להוסיף את הקוד הבא לקובץ functions.php של התבנית שלכם:

// ADD CUSTOM POST TYPES TO THE DEFAULT RSS FEED
function custom_feed_request( $vars ) {
 if (isset($vars['feed']) && !isset($vars['post_type']))
  $vars['post_type'] = array( 'post', 'site', 'plugin', 'theme', 'person' );
 return $vars;
}
add_filter( 'request', 'custom_feed_request' );

ביטול הוספה אוטומטית של width ו height לתמונות

כשאתם מעלים תמונה באמצעות אפשרות המדיה של וורדפרס, ולאחר מכן מכניסים תמונה זו לעורך התוכן, התמונה תצורף עם תכונות הגובה והרוחב (width & height attributes). תכונות אלו רצויות עקרונית מכיוון ואלו עוזרות לדפדפן לשמור מקום מתאים לתמונה כשהוא מבצע את פעולת ה layout.

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

add_filter( 'post_thumbnail_html', 'remove_width_attribute', 10 );
add_filter( 'image_send_to_editor', 'remove_width_attribute', 10 );

function remove_width_attribute( $html ) {
   $html = preg_replace( '/(width|height)="\d*"\s/', "", $html );
   return $html;
}

מידע נוסף על תמונות בוורדפרס תמצאו בפוסט הבא.

ווקומרס: הפנייה לכתובת URL ספציפית בהסרת קופון

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

/*
 * Redirects user to a specific page upon coupon removal.
 */
function action_woocommerce_removed_coupon( $coupon_code ) { 
    // Redirection...
    wp_redirect( $url ); // Replace $url by your page URL.
    exit; 
}; 

// add the action 
add_action( 'woocommerce_removed_coupon', 'action_woocommerce_removed_coupon', 10, 1 );

ביטול ה Lightbox הדיפולטיבי בווקומרס 3.0+

הנה דרך קצרה לבטל את אפשרות ה Lightbox בווקומרס 3.0 ומעלה. הוסיפו את הקוד הבא לקובץ functions.php:

add_action( 'after_setup_theme', 'remove_wc_gallery_lightbox', 100 );

function remove_wc_gallery_lightbox() { 
  remove_theme_support( 'wc-product-gallery-lightbox' );
}