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

ביטול תגובות בוורדפרס

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

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

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


// Disable support for comments and trackbacks in post types
function sv_disable_comments_post_types_support() {
	$post_types = get_post_types();
	foreach ($post_types as $post_type) {
		if(post_type_supports($post_type, 'comments')) {
			remove_post_type_support($post_type, 'comments');
			remove_post_type_support($post_type, 'trackbacks');
		}
	}
}
add_action('admin_init', 'sv_disable_comments_post_types_support');



// Close comments on the front-end
function sv_disable_comments_status() {
	return false;
}
add_filter('comments_open', 'sv_disable_comments_status', 20, 2);
add_filter('pings_open', 'sv_disable_comments_status', 20, 2);



// Hide existing comments
function sv_disable_comments_hide_existing_comments($comments) {
	$comments = array();
	return $comments;
}
add_filter('comments_array', 'sv_disable_comments_hide_existing_comments', 10, 2);



// Remove comments page in menu
function sv_disable_comments_admin_menu() {
	remove_menu_page('edit-comments.php');
}
add_action('admin_menu', 'sv_disable_comments_admin_menu');



// Redirect any user trying to access comments page
function sv_disable_comments_admin_menu_redirect() {
	global $pagenow;
	if ($pagenow === 'edit-comments.php') {
		wp_redirect(admin_url()); exit;
	}
}
add_action('admin_init', 'sv_disable_comments_admin_menu_redirect');



// Remove comments metabox from dashboard
function sv_disable_comments_dashboard() {
	remove_meta_box('dashboard_recent_comments', 'dashboard', 'normal');
}
add_action('admin_init', 'sv_disable_comments_dashboard');



// Remove comments links from admin bar
function sv_disable_comments_admin_bar() {
	if (is_admin_bar_showing()) {
		remove_action('admin_bar_menu', 'wp_admin_bar_comments_menu', 60);
	}
}
add_action('init', 'sv_disable_comments_admin_bar');

הסרת חוות דעת מהמוצרים בווקומרס

כברירת מחדל, בדף מוצר בווקומרס מופיע טאב ״חוות דעת״ (reviews) אשר מאפשר לגולשים להשאיר ביקורת על מוצר מסויים. אם ברצונכם להסיר את מנגנון חוות הדעת ב Woocommerce באתר הוורדפרס שלכם שלכם הוסיפו את הקוד הבא לקובץ functions.php:


/* REMOVE REVIEW TAB FROM WOOCOMMERCE PRODUCTS */

add_filter( 'woocommerce_product_tabs', 'sb_woo_remove_reviews_tab', 98);

function sb_woo_remove_reviews_tab($tabs) {
   unset($tabs['reviews']);
   return $tabs;
}

הפנייה לדף תחזוקה (Maintanance Mode) בוורדפרס

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

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

הוסיפו את השורות הבאות לקובץ .htaccess שימו לב כי אתם נדרשים לשנות את הקוד הנ״ל ולהחליף את הכתובת בשורה 3 ל ip שלכם בכדי שתהיה לכם האפשרות לגשת לאתר. שימו לב גם לשנות את שם הדף ומיקומו בהתאם להגדרות שלכם בשורה 3.

RewriteEngine on
RewriteCond %{REQUEST_URI} !/maintenance.html$
RewriteCond %{REMOTE_ADDR} !^123\.123\.123\.123
RewriteRule $ /maintenance.html [R=302,L]

הפניה אוטומטית לפוסט במקרה של תוצאה אחת בחיפוש

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

function single_result() {
    if (is_search()) {
        global $wp_query;
        if ($wp_query->post_count == 1) {
            wp_redirect( get_permalink( $wp_query->posts['0']->ID ) );
        }
    }
}

add_action('template_redirect', 'single_result');

עיצוב anchor tags לפי סוג הקישור

קוד זה מכוון לשיפור חווית המשתמש. לא מעט פעמים אנו נתקלים במצב בו אנו לוחצים על קישורים אשר איננו יודעים לאן הם מובילים. קוד זה יכול לשפר את חווית המשתמש על ידי הוספת אייקונים קטנים ליד הקישור ולהראות לגולש כי זהו לינק חיצוני – אימייל / קובץ pdf / תמונה וכו׳…

/* external links */
a[href^="http://"]{
    padding-right: 20px;
    background: url(external.gif) no-repeat center right;
}
 
/* emails */
a[href^="mailto:"]{
    padding-right: 20px;
    background: url(email.png) no-repeat center right;
}
 
/* pdfs */
a[href$=".pdf"]{
    padding-right: 20px;
    background: url(pdf.png) no-repeat center right;
}

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

ניתן להפנות משתמשים אשר מתחברים לאתר הוורדפרס שלכם לכתובת url שונה בהתאם לתפקיד (role) שלהם.


function redirect_user_on_role()
{
	// קח מידע לגבי המשתמש הנוכחי
	global $current_user;
     	get_currentuserinfo();
 	// אם תפקיד המשתמש הוא מנוי
     	if ($current_user->user_level == 0)
     	{
        	wp_redirect( home_url() ); exit;
     	}
 	// אם תפקיד המשתמש הוא תורם
 	else if ($current_user->user_level > 1)
 	{
        	 wp_redirect( home_url() ); exit;
     	}
  	// אם תפקיד המשתמש הוא עורך
     	else if ($current_user->user_level >8)
     	{
		wp_redirect( home_url() ); exit;
     	}
 	// תפקידים אחרים...
	else
     	{
      		$redirect_to = 'http://google.com/';
        	return $redirect_to;
 	}
}
add_action('admin_init','redirect_user_on_role');

הפניית WWW לכתובת ללא WWW ולהפך – HTACCESS

אם ברצונכם להפנות כל כתובת באתר שלכם המכילה www לכתובת ללא www, כלומר http:/www.my-domain.co.il ל http://my-domain.co.il הוסיפו את הקוד הבא לקובץ htaccess:


RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

אם ברצונכם לבצע את הפעולה ההפוכה, כלומר להפנות כתובת שאינה מכילה www לאותה כתובת עם www, השתמשו בקוד הבא:


RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

מדוע לבצע זאת?

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

העברת אתר וורדפרס ל HTTPS אינו עניין של מה בכך, תנו מבט במדריך מעבר ל HTTPS באתרי וורדפרס.

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

הקוד הבא יפנה פיד RSS של וורדפרס ל FeedBurner. הוסיפו אותו לקובץ htaccess:

#Redirect wordpress content feeds to feedburner
<ifmodule mod_rewrite.c="">
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} !FeedBurner    [NC]
RewriteCond %{HTTP_USER_AGENT} !FeedValidator [NC]
RewriteRule ^feed/?([_0-9a-z-]+)?/?$ http://feeds.feedburner.com/yourfeed [R=302,NC,L]
</ifmodule>

בטלו את השאלה האם לפתוח או לשמור קבצים ברמת השרת

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

AddType application/octet-stream .pdf
AddType application/octet-stream .zip
AddType application/octet-stream .mov

מנעו hotlinking לתמונות

נמאס לכם מאנשים אשר משתמשים ברוחב הפס שלכם ושמים קישורים לתמונות שלכם באתר שלהם? תופעה מציקה זו נקראית hotlinking בשפה המקצועית. מנעו hotlinking לתמונות על ידי הוספת הקוד הבא בתחתית הקובץ htaccess ושימו לב שאתם משנים את שם הדומיין לדומיין שלכם.

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?example.com/.*$ [NC] 
RewriteRule \.(gif|jpg)$ http://www.example.com/hotlink.gif [R,L]