אוסף הסניפטים הגדול לוורדפרס

  • כותרות
  • הלופ (Loop)
  • ממשק הניהול
  • עיצוב אלמנטים
  • שליטה בקטגוריות
  • תפריטים בוורדפרס
  • אלמנטים אוטומטיים
  • קידום אתרים
  • ממשק התגובות
  • ניהול הזנת RSS
  • תמונת Thumbnail
  • קיצורי קוד
  • Custom Fields
  • תאריכים
  • פעולות אימייל
  • תיקוני אבטחה
  • מידע משתמש
  • אנטי ספאם
  • אחזור מידע מותאם
  • חיפוש בוורדפרס
  • ספירת אלמנטים
  • דיבאגינג
  • רשת אתרים
  • WooCommerce
  • רק בישראל
  • שונות
  • אהבתם? שתפו!

כותרות

+ קיצור הכותרת – גרסה עם…

תיאור:

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

first קוד:

  • מה: סניפט חכם לקיצור כותרת עם סיומת של 3 נקודות
  • איפה: בקובץ functions.php
function short_title($len,$rep='...') {
	$title = the_title('','',false);
	$shortenedTitle = limitMyText($title, $len, $rep);
	print $shortenedTitle;
}

function limitMyText($string, $length, $replacer) {
	if(strlen($string) > $length)
	return (preg_match('/^(.*)\W.*$/', substr($string, 0, $length+1), $matches) ? $matches[1] : substr($string, 0, $length)) . $replacer;
	return $string;
}

second קוד:

  • מה: החלק של הכותרת עצמה עם מספר התווים הרצוי
  • איפה: בקובץ הרצוי ובמיקום הרצוי בו תרצו להציג את הכותרת.
<?php short_title(32,'...'); ?>
קיצור הכותרת – גרסה עם…
+ קיצור הכותרת – גרסה 1

תיאור:

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

first קוד:

  • מה: סניפט קצר מאוד בעזרתו אפשר לקצר כותרת
  • איפה: בקובץ הרצוי ובמיקום הרצוי בו תרצו להציג את הכותרת.
<?php $shortTitle = $post->post_title; echo mb_substr($shortTitle, 0, 32); ?>
קיצור הכותרת – גרסה 1
+ כותרת פשוטה וכותרת כקישור

תיאור:

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

first קוד:

  • מה: סניפט שמחזיר את הכותרת במבנה הבסיס שלה
  • איפה: בקובץ הרצוי ובמיקום הרצוי בו תרצו להציג את הכותרת.
// הכותרת בצורה הפשוטה ביותר
<?php the_title(); ?>

// הכותרת בצורה קישור
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
כותרת פשוטה וכותרת כקישור
+ אחזר פוסט בעזרת כותרת

תיאור:

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

first קוד:

  • מה: סניפט שמאפשר להחזיר מידע של הפוסט בעזרת הכותרת שלו
  • איפה: ישירות במקום הרצוי בו אתם רוצים להציג את המידע
<?php
$posttitle = 'post_title';
$postid = $wpdb->get_var( "SELECT ID FROM $wpdb->posts WHERE post_title = '" . $posttitle . "'" );
$customPost = get_post($postid);

/********************************************
** כעת ניתן להחזיר מידע של הפוסט בצורה כזו
*******************************************/

// כותב הפוסט
$customPost->post_author;

// כותרת הפוסט
$customPost->post_title;

// קטגורית הפוסט
$customPost->post_title;
?>
אחזר פוסט בעזרת כותרת

הלופ (Loop)

+ קיבוץ פוסטים בתוך קטגוריות ברשימה

תיאור:

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

קטגוריה א

[list_darkgrey]
  • פריט לדוגמה 1
  • פריט לדוגמה 2
  • פריט לדוגמה 3
[/list_darkgrey]

קטגוריה ב

[list_darkgrey]
  • פריט לדוגמה 1
  • פריט לדוגמה 2
  • פריט לדוגמה 3
[/list_darkgrey]   וכן הלאה... נכון לעכשיו הסניפט מותאם לפוסט מותאם (CPT) ולכן רק שנו את השם של הTAXONOMY ואת שם סוג הפוסט והסניפט מוכן לעבודה!

first קוד:

  • מה: קיבוץ פוסט מותאם בתוך קטגוריות בתצוגת רשימה
  • איפה: ישירות במיקום בו אתם רוצים להציג את התוצאה
$terms = get_terms("locations");
$count = count($terms);
if ( $count > 0 ){
    foreach ( $terms as $term ) {
        echo '<h2>' . $term->name . '</h2>';
        echo '<ul>';
        $loop = new WP_Query( array( 
            'post_type' => 'vacationrental',
            'post_per_page' => 100,
            'orderby' => 'date',
            'order' => 'ASC',
            'tax_query' => array(
                array(
                    'taxonomy' => 'locations',
                    'field' => 'id',
                    'terms' => $term->term_id
                )
            )
        ));
        // the loop
        while ($loop->have_posts()) : $loop->the_post();
            // do loop content
            echo '<li>' . get_the_title() . '</li>';
        endwhile;
        // reset $post so that the rest of the template is in the original context
        wp_reset_postdata();
        echo '</ul>';
    }
}
קיבוץ פוסטים בתוך קטגוריות ברשימה
+ לופ שמחזיר קטגוריות ובתוכן פוסטים בהתאם לקטגוריה

תיאור:

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

first קוד:

  • מה: סניפט של Loop שמחזיר רשימה של קטגוריות ובתוכן פוסטים אחרונים
  • איפה: בקובץ הרצוי ובמיקום הרצוי בו תרצו להציג את ה-Loop הזה.
<?php  
 $allcats = get_categories('child_of='.get_query_var('cat')); 

	foreach ($allcats as $cat) :
	$args = array(
	'posts_per_page' => 3, // max number of post per category

	'category__in' => array($cat->term_id)
	);
	
	$customInCatQuery = new WP_Query($args); 
	
	if ($customInCatQuery->have_posts()) : 
	echo '<div>';
    echo '<h3>'.$cat->name.'</h3>';
	echo '<ul>';	
    while ($customInCatQuery->have_posts()) : $customInCatQuery->the_post(); ?>
	
    <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
	
<?php
endwhile; 
echo '</ul></div>';	
?>

<?php else : 
echo 'No post published in:'.$cat->name;                
endif; 
wp_reset_query();
endforeach; 
?>
לופ שמחזיר קטגוריות ובתוכן פוסטים בהתאם לקטגוריה
+ לופ שמחזיר פוסטים אחרונים

תיאור:

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

first קוד:

  • מה: סניפט של Loop שמחזיר 5 פוסטים אחרונים
  • איפה: בקובץ הרצוי ובמיקום הרצוי בו תרצו להציג את ה-Loop
<h3><?php _e('Recent Articles', 'your_text_domain'); ?></h3>
<ul>
<?php
    $recentPosts = new WP_Query();
    $recentPosts->query('showposts=5'); // כאן אתם קובעים את כמות הפוסטים שאתה רוצים להחזיר

?>
<?php while ($recentPosts->have_posts()) : $recentPosts->the_post(); ?>
    <li><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a></li>
<?php endwhile; ?>
</ul>
לופ שמחזיר פוסטים אחרונים
+ לופ משני שמחזיר רשימה של פוסטים למעט הפוסט הנוכחי

תיאור:

הסניפט הבא מתחלק לשניים… ראשית עלינו לשמור את זהות הפוסט הנוכחי בתוך הלופ הראשוני ובחלק השני אנו נקרא לרשימת פוסטים (כמה שנרצה) אל תוך לופ שני. זה קצת מורכב אבל אם אתם מבינים עניין זה קוד מועיל במיוחד ועובד גם בCustom Post Type. התועלת האמיתית הסניפט הבא הוא להציג רשימת פוסטים רלוונטים לאחר הפוסט הראשי!

first קוד:

  • מה: קוד קצרצר בו אנו מגדירים את הID של הפוסט הנוכחי כמשתנה גלובלי
  • איפה: בתוך הLoop הראשון בקובץ single.php או page.php או פוסט מותאם.
<?php $GLOBALS&#91;'current_id'&#93; = $post->ID; ?>

second קוד:

  • מה: הסניפט הבא הוא לופ משני אשר יחזיר רשימה של פוסטים למעט הנוכחי
  • איפה: בתוך הLoop הראשון בקובץ single.php או page.php או פוסט מותאם.
<ul>
	<?php
		global $post;
		$args = array(
			'post_type' => 'post', // סוג התוכן בו אתם מטמיעים את הלופ

			'post__not_in' => array($current_id), // המשתנה שהגדרנו בחלק הראשון

			'posts_per_page' => 9, //  כמות הפוסטים או עמודים שנרצה להחזיר

			'orderby' => 'rand' // הסדר בו יחזור הפוסטים

		);			
		$myposts = get_posts( $args );
	foreach( $myposts as $post ) :	setup_postdata($post); ?>
	<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
	<?php endforeach; ?>
</ul>
לופ משני שמחזיר רשימה של פוסטים למעט הפוסט הנוכחי
+ הloop הבסיסי של וורדפרס

תיאור:

סניפט קצר מאוד שמדגים את הLoop הבסיסי של וורדפרס בו נעשה לרוב שימוש בדף Single.php וגם בקובץ Category.php וכו'. בעיקר כאן כדי להעתיק ולהדביק בקלות ולחסוך זמן.

first קוד:

  • מה: סניפט שמציג את הלופ הבסיסי של וורדפרס
  • איפה: בקובץ בו אתם רוצים להשתמש בLoop
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
    <h1><?php the_title(); ?></h1>
    <?php the_content(); ?>
<?php endwhile; ?>
<?php endif; ?>
הloop הבסיסי של וורדפרס

ממשק הניהול

+ שליטה באיזה וידגטים יוצגו בלוח הבקרה

תיאור:

פעמים רבות אנו עשוים לרצות לחסום וידג'טים מסוימים למשתמשים מסוימים ולא להציג הכל. הסניפט הבא מאפשר לכם לחסום הצגה (וגם אפשרות להציג אותם דרך "אפשרויות תצוגה") של וידגטים נבחרים לכולם חוץ מלמנהל האתר. הסירו את השורות של וידגטים שאתם כן רוצים להציג.

first קוד:

  • מה: סניפט שעוזר לבחור איזה וידגטים להציג בלוח הבקרה
  • איפה: בקובץ Functions.php
function remove_dashboard_widgets() {
    global $wp_meta_boxes;
 
    unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_right_now']);
    unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_recent_comments']);
    unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_incoming_links']);
    unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_plugins']);
 
    unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_quick_press']);
    unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_recent_drafts']);
    unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']);
    unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']);
}

// רק מנהל אתר יכול לראות את הוידגטים
if (!current_user_can('manage_options')) {
		add_action('wp_dashboard_setup', 'remove_dashboard_widgets');
}
שליטה באיזה וידגטים יוצגו בלוח הבקרה
+ שינוי שורת הטקסט בפוטר של לוח הבקרה שלכם

תיאור:

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

first קוד:

  • מה: סניפט שעוזר לשנות את שורת הטקסט בFooter של וורדפרס
  • איפה: בקובץ Functions.php
add_filter( 'admin_footer_text', 'custom_admin_footer_text' );
function custom_admin_footer_text( $default_text ) {
     return '<span id="footer-thankyou">Website by <a href="https://sagive.co.il">Sagive SEO</a></span>';
}
שינוי שורת הטקסט בפוטר של לוח הבקרה שלכם
+ שולטים בצבעים של לוח הבקרה

תיאור:

רציתם אי פעם לשנות את הצבע של וידג'ט מסוים בממשק הניהול של וורדפרס? אולי אתם רוצים להבליט כפתור מסוים או לצבוע קישור מסוים בצבע שונה? סניפט זה יאפשר לכם לשנות צבעים כאוות נפשכם. רק שנו את הID (למביני CSS) של האובייקט והוסיפו אותו בין תגי STYLE וסיימתם!

first קוד:

  • מה: יחליף את הצבעים של הוידג'ט
  • איפה: בקובץ Functions.php
function custom_colors() {
   echo '<style type="text/css">
   #dashboard_right_now{background:#444; color: #fff;}
   #dashboard_right_now a {color: #fff;}
   </style>';
}

add_action('admin_head', 'custom_colors');
שולטים בצבעים של לוח הבקרה
+ פרסונליזציה לדף ההתחברות של וורדפרס

תיאור:

הקוד הבא עושה שלושה דברים… הראשון הוא שהוא מחליף את הלוגו של וורדפרס בדף ההתחברות לאתר שאתם בונים. שימו לב ליצור תמונה מתאימה בשם logo-login.png ולשים אותה בתיקייה images שבתבנית שלכם או לשנות את המסלול ושם התמונה בסניפט

first קוד:

  • מה: סניפט פרסונליזציה לדף ההתחברות של וורדפרס
  • איפה: בקובץ Functions.php
// פונקציה שטוענת את התמונה שלכם בדף ההתחברות
function custom_login_logo() {    
echo '<style type="text/css"> 
h1 a { background-image:url('.get_bloginfo('template_directory').'/images/logo-login.png) !important; } 
</style>';   
}   
add_action('login_head', 'custom_login_logo');

// הקישור של התמונה וגם הטקסט ALT  
function change_wp_login_url() {    
echo bloginfo('url');  // זה הקישור אליו תוביל התמונה = האתר שלכם  
}   

function change_wp_login_title() {    
echo get_option('blogname'); // זה הטקסט שיופיע במעבר עכבר על התמונה
}   

add_filter('login_headerurl', 'change_wp_login_url');   
add_filter('login_headertitle', 'change_wp_login_title');
פרסונליזציה לדף ההתחברות של וורדפרס
+ מחליפים את הלוגו בממשק הניהול של וורדפרס

תיאור:

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

first קוד:

  • מה: החלפת הלוגו בממשק הניהול של וורדפרס
  • איפה: בקובץ Functions.php
add_action('admin_head', 'my_dashboard_logo');

function my_dashboard_logo() {
   echo '<style type="text/css">
		// זכרו לבחור כאן את שם ומסלול התמונה הרצוי
         #header-logo { background-image: url('.get_bloginfo('template_directory').'/images/custom-logo.gif) !important; }</style>';
}
מחליפים את הלוגו בממשק הניהול של וורדפרס
+ כל האפשרויות במקום אחד

תיאור:

הסניפט הבא מציג את כל האפשרויות של וורדפרס וגם הרבה כאלה שלא הכרתם מעולם במקום אחד. ברגע שתוסיפו את הסניפט הבא לקובץ function.php יתווסף לכם לתפריט הגדרות תת-פריט שנקרא כל ההגדרות – שווה לראות וללמוד מה עוד אפשר לשנות.

first קוד:

  • מה: יצור תת-תפריט שיאפשר לראות את כל ההגדרות במקום אחד
  • איפה: בקובץ Functions.php
function all_settings_link() {
	add_options_page(__('All Settings'), __('All Settings'), 'administrator', 'options.php');
}
add_action('admin_menu', 'all_settings_link');
כל האפשרויות במקום אחד
+ הוספת קו חוצץ לתפריט הניהול של וורדפרס

תיאור:

אם אתם בוני אתרים ברמה טובה בוודאי התוודעתם לפוסטים מותאמים (Custom Post Type) מה שיוצר את הצורך פעמים רבות להוסיף קו חוצץ בין פריטים מסוימים בתפריט הניהול של וורדפרס. הסניפט הבא עוזר לעשות בדיוק את זה.

first קוד:

  • מה: סניפט שמוסיף קו חוצץ בין פריטים בתפריט ממשק הניהול
  • איפה: בקובץ Functions.php
function admin_menu_separator($position) {
  global $menu;
  $index = 0;
  foreach($menu as $offset => $section) {
    if (substr($section[2],0,9)=='separator')
      $index++;
    if ($offset>=$position) {
      $menu[$position] = array('','read',"separator{$index}",'','wp-menu-separator');
      break;
    }
  }
}

add_action('admin_init','admin_menu_separator');
function admin_menu_separator() {
admin_menu_separator(10); // המספר כאן הוא המיקום של הקו החוצץ
}
הוספת קו חוצץ לתפריט הניהול של וורדפרס
+ הוספת עמודת תמונה לעמודות בפוסטים ובעמודים

תיאור:

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

first קוד:

  • מה: סניפט שמוסיף עמודה בה התמונה הראשית של כל פוסט
  • איפה: בקובץ Functions.php
// פילטרים אשר מודיעים לשלב את הפונקציה של העמודה לעמודים ופוסטים
add_filter('manage_posts_columns', 'sgv_post_thumbnail_column', 5);
add_filter('manage_pages_columns', 'sgv_post_thumbnail_column', 5);
 
// מוסיפים את העמודה
function sgv_post_thumbnail_column($cols){
  $cols['sgv_post_thumb'] = __('Featured');
  return $cols;
}
 
add_action('manage_posts_custom_column', 'display_sgv_post_thumbnail_column', 5, 2);
add_action('manage_pages_custom_column', 'display_sgv_post_thumbnail_column', 5, 2);
 
// תפוס את התמונה ותציג אותה
function display_sgv_post_thumbnail_column($col, $id){
  switch($col){
    case 'sgv_post_thumb':
      if( function_exists('the_post_thumbnail') )
		// כאן אתם יכולים לקבוע את הגודל של התמונה - כרגע 64x64

		echo the_post_thumbnail( array(64,64), 'admin-list-thumb' );
      else
        echo 'Not supported';
      break;
  }
}
הוספת עמודת תמונה לעמודות בפוסטים ובעמודים
+ הוספת עמודת ID לרשימת הפוסטים בwp-admin

תיאור:

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

first קוד:

  • מה: עמודת ID של פוסטים בממשק הניהול
  • איפה: בקובץ Functions.php או קובץ מצורף אליו
add_filter('manage_posts_columns', 'posts_columns_id', 5);
add_action('manage_posts_custom_column', 'posts_custom_id_columns', 5, 2);
add_filter('manage_pages_columns', 'posts_columns_id', 5);
add_action('manage_pages_custom_column', 'posts_custom_id_columns', 5, 2);
function posts_columns_id($defaults){
    $defaults['wps_post_id'] = __('ID');
    return $defaults;
}
function posts_custom_id_columns($column_name, $id){
	if($column_name === 'wps_post_id'){
		echo $id;
    }
}
הוספת עמודת ID לרשימת הפוסטים בwp-admin
+ הוספת כפתור לתפריט בממשק הניהול של וורדפרס

תיאור:

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

first קוד:

  • מה: סניפט שעוזר להוסיף כפתור לתפריט בממשק הניהול
  • איפה: בקובץ Functions.php
add_action( 'admin_menu' , 'add_admin_menu_button' );
function add_admin_menu_button() {
    global $submenu;
    $submenu['index.php'][500] = array( 'Sagive SEO', 'manage_options' , 'https://sagive.co.il' ); 
}
הוספת כפתור לתפריט בממשק הניהול של וורדפרס
+ הוספת וידגט משלכם ללוח הבקרה של וורדפרס

תיאור:

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

first קוד:

  • מה: סניפט שעוזר ליצור וידג'ט בלוח הבקרה של וורדפרס
  • איפה: בקובץ Functions.php
function custom_dashboard_widgets(){
    wp_add_dashboard_widget('my_custom_widget_id', 'My Widget Title', 'my_own_widget');
}
 
function my_own_widget() {
    echo '<p>התוכן של הוידגט כאן.</p>';
}
הוספת וידגט משלכם ללוח הבקרה של וורדפרס
+ הוספת דף עזרה לממשק הניהול של וורדפרס

תיאור:

מספקים שירותי בניית אתרי וורדפרס? יש לכם מידע שתרצו לשמור בתוך האתר וורדפרס שלכם בדף נפרד? הסניפט הבא יאפשר לכם ליצור דף עזרה או כל סוג אחר שתרצו עם כפתור גישה אליו מתפריט הניהול של אתר הוורדפרס שלכם. שימו לב שאם הקובץ אינו בקידוד UTF-9 Without Bom יש לשים הכל במחרוזות שניתן לתרגם.

first קוד:

  • מה: סניפט שיוצר דף עזרה בממשק של וורדפרס
  • איפה: בקובץ Functions.php
<?php
function sg_add_page() {
   // הפרמטר הראשון הוא שם הדף, הפרמטר השני הוא שם הכפתור, הפרמטר השלישי הוא דרגת המשתמש שיכול לראות את הדף, הפרמטר הרביעי הוא ID יחודי

    add_menu_page('Site Help', __('Help', 'Sagive'), 5, __FILE__, 'sg_help_page');
}
// mt_toplevel_page() displays the page content for the custom Test Toplevel menu

function sg_help_page() {
?>
<div class="wrap">
		<h2><?php _e('Help Page', 'Sagive'); ?></h2>
		כאן תשימו את התוכן שלכם...
    </div>
<?php
}
// מוסיפים את הפעולה לתפריט הניהול של וורדפרס
add_action('admin_menu', 'sg_add_page');
?>
הוספת דף עזרה לממשק הניהול של וורדפרס

עיצוב אלמנטים

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

תיאור:

הסניפט הבא יוצר 2 קישורים חכמים ואוטומטיים בוורדפרס. את הקוד הבא אפשר לשים בסרגל צד (Sidebar.php) או בכל מקום רצוי. הייחוד של קישורים אלו הם שאם המשתמש מחובר הוא יקבל קישור logout לקישור אל לוח הבקרה ואם לא הוא יקבל רק קישור "הרשמה".

first קוד:

  • מה: סניפט שיוצר קישורי הרשמה והתנתקות אוטומטית
  • איפה: בקובץ ובמיקום הרצוי בו תרצו שהקישורים יופיעו
<?php wp_register(); ?>
<?php if (is_user_logged_in()) : ?>
<a href="<?php echo wp_logout_url(get_permalink()); ?>" title="<?php _e('Logout', 'sagive'); ?>"><?php _e('Logout', 'sagive'); ?></a>
<?php endif; ?>
קישורי להרשם ולהתנתק לוורדפרס
+ עיצוב ענן תגים בלי תוסף

תיאור:

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

first קוד:

  • מה: סניפט שעוזר לשלוט במראה הענן תגים שלכם
  • איפה: בקובץ Functions.php
add_filter('widget_tag_cloud_args','style_tags');
function style_tags($args) {
$args = array(
    'largest'    => '16',		// בשורה זאת גודל המילה הגדולה ביותר
    'smallest'   => '10',		// בשורה זאת גודל המילה הקטנה ביותר
    'format'     => 'list',		// בשורה זאת סוג הענן תגים: list = רשימה, flat = ענן
    'orderby'	 => 'name', 	// בשורה זאת סדר התגים: name = לפי האלף בית, count = מהנפוץ לפחות נפוץ	
    'orderby'	 => 'ASC', 		// בשורה זאת סדר התגים: ASC = מהגדול לקטן, DESC = מהקטן לגדול, RAND = בסדר רנדומלי	
    'exclude'	 => 'tag 1', 	// מילים שתרצו שלא לכלול בענן תגים שלכם
	);
	return $args;
}
עיצוב ענן תגים בלי תוסף
+ הסרת תפריט השליטה של וורדפרס

תיאור:

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

first קוד:

  • מה: העלמת סרגל גישה מהירה של וורדפרס
  • איפה: בקובץ Functions.php או בקובץ מצורף אליו
add_action('init', 'remove_admin_bar');
function remove_admin_bar() {
	  show_admin_bar(false);
}

add_action('wp_footer', 'remove_admin_bar_css');
function remove_admin_bar_css() {
	  echo '
		<style type="text/css">
                // קבעו את המרחק של ראש המסמך 
		html {margin-top: 0px !important;}
		</style>
	  ';
}
הסרת תפריט השליטה של וורדפרס

שליטה בקטגוריות

+ מחזירים את תיאור הקטגוריה

תיאור:

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

first קוד:

  • מה: סניפט שמחזיר את התיאור של הקטגוריה
  • איפה: בקובץ category.php או archive.php
<?php echo get_term_field( 'description', get_query_var( 'cat' ), 'category', 'raw' ); ?>
מחזירים את תיאור הקטגוריה

תפריטים בוורדפרס

+ רישום / יצירה של תפריטים מותאמים (Custom Menus)

תיאור:

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

first קוד:

  • מה: סניפט שמצהיר 3 תפריטים מותאמים
  • איפה: בקובץ Functions.php
add_action( 'init', 'register_my_menus' );
 
function register_my_menus() {
    register_nav_menus(
        array(
            'primary-menu' => __( 'Primary Menu' ),
            'secondary-menu' => __( 'Secondary Menu' ),
            'tertiary-menu' => __( 'Tertiary Menu' )
        )
    );
}

second קוד:

  • מה: סניפט שקורא לתפריט מותאם לפי שמו
  • איפה: בקובץ הרצוי ובמיקום הרצוי באותו הקובץ
<?php wp_nav_menu( array( 'theme_location' => 'primary-menu' ) ); ?>
רישום / יצירה של תפריטים מותאמים (Custom Menus)
+ רישום / יצירה של תפריטי צד

תיאור:

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

first קוד:

  • מה: סניפט שמצהיר על 5 תפריטי צד בהתאם לסוג התוכן שלנו
  • איפה: בקובץ Functions.php
if ( function_exists('register_sidebar') )
register_sidebar(array('name'=>'homepage',
));
register_sidebar(array('name'=>'pages',
));
register_sidebar(array('name'=>'Services',
));
register_sidebar(array('name'=>'Posts',
));
register_sidebar(array('name'=>'category',
));

second קוד:

  • מה: סניפט שנדביק במקום בו נרצה שתפריט מסוים יופיע
  • איפה: בקובץ הרצוי ובמיקום הרצוי באותו הקובץ
<?php if ( function_exists('dynamic_sidebar') && dynamic_sidebar('pages') ) : else : ?><?php endif; ?>
רישום / יצירה של תפריטי צד
+ הוספה אוטומטית של Class'ים ראשון ואחרון לפריטים בתפריט

תיאור:

הסניפט הבא שימושי מאוד כיוון שפעמים רבות אנו רוצים לעצב את התפריט שלנו אך מתקשים להשפיע על פריטים בתוכו בנפרד כיוון שהם פריטים ברשימה. הסניפט הבא יוסיף class של first ו-last לפריט הראשון והאחרון בתפריט שלנו!

first קוד:

  • מה: סניפט שמוסיף קלאסים ראשון ואחרון לתפריטים באתר
  • איפה: בקובץ Functions.php
add_filter( 'wp_nav_menu_items', 'first_last_class' );
function first_last_class( $items ) {
    $first = strpos( $items, 'class=' );
	
    if( false !== $first )
         $items = substr_replace( $items, 'first ', $first+7, 0 );

    $last = strripos( $items, 'class=');

    if( false !== $last )
         $items = substr_replace( $items, 'last ', $last+7, 0 );
    return $items;
}
הוספה אוטומטית של Class'ים ראשון ואחרון לפריטים בתפריט
+ בודקים אם תפריט מותאם פעיל וקיים

תיאור:

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

first קוד:

  • מה: בודק אם תפריט מותאם קיים
  • איפה: במיקום בו אתם רוצים להציג את התפריט
<?php
if ( has_nav_menu( $location ) ) {
     //Do something
} 
?> 
בודקים אם תפריט מותאם פעיל וקיים

אלמנטים אוטומטיים

+ שליטה בכמות ההעתקים לכל פוסט / דף

תיאור:

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

first קוד:

  • מה: סניפט שעוזר לשלוט בכמות ההעתקים של כל פוסט
  • איפה: בקובץ Functions.php
// בסניפט זה הגדרתי ל5 - בחרו את הכמות הרצויה
if (!defined('WP_POST_REVISIONS')) define('WP_POST_REVISIONS', 5);
שליטה בכמות ההעתקים לכל פוסט / דף
+ שליטה בזמן ההתחברות שנקבע בעוגיה

תיאור:

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

first קוד:

  • מה: סניפט שעוזר לשלוט באורך הזמן בו אתם מחוברים לוורדפרס לאחר שעזבתם
  • איפה: בקובץ Functions.php
function oneMonthLogin( $expirein ) {
   return 2592000; // חודש אחד בשניות
}
add_filter( 'auth_cookie_expiration', 'oneMonthLogin' );
שליטה בזמן ההתחברות שנקבע בעוגיה
+ שליטה באורך התקציר

תיאור:

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

first קוד:

  • מה: סניפט שעוזר לשלוט באורך התקציר
  • איפה: בקובץ Functions.php
function new_excerpt_length($length) { 
    return 100; // כאן את כמות התווים הרצויה
}
add_filter('excerpt_length', 'new_excerpt_length');
שליטה באורך התקציר
+ ספירת משתמשים על פי סוג

תיאור:

סניפט מדליק שהוא התאמה של פונקציה מובנית של וורדפרס אשר מאפשרת לנו לספור כמה משתמשים (רשומים) יש לנו באתר וגם כמה מכל סוג של משתמש כלומר כמה מנהלים, כמה כותבים, כמה מנויים וכו'. שימושי במיוחד לאתרים מרובי משתמשים / אתרי מאמרים וכו'.

first קוד:

  • מה: ספירת כמות המשתמשים בבלוג
  • איפה: בקובץ Functions.php
function user_counter($type) {
 
    // OPTIONAL USER LEVELS: 
    // all, administrator, editor, author, contributor, subscriber
 
    $result     =   count_users();
    $totalUsers =   $result['total_users'];
     
    if($type == 'all' || $type == '') {
        return $totalUsers;
    } 
    else {
        return $result['avail_roles'][$type];
    }
}

second קוד:

  • מה: הדגמה של שימוש
  • איפה: בקובץ ובמיקום הרצוי בתבנית שלכם
// ספירת כל המשתמשים
echo user_counter('all').' Users.';
 
// ספירת רק מנויים
echo user_counter('subscriber').' subscribers.';
 
// ספירת מנויים ומנהלי אתר
echo 'We got '.user_counter('subscriber').' subscribers and '.user_counter('administrator').' administrators!';
ספירת משתמשים על פי סוג
+ מניעה של פינגים פנימיים

תיאור:

כל מי שמבין קצת בתחום של [linkfx style="1" url="https://sagive.co.il/company-services/seo/"]קידום אתרים באינטרנט[/linkfx] וזה אומר כמעט כולנו מקשר בין עמודים באתר שלנו כדי להזרים PR וגם כדי לאפשר לגולשים להגיע מפה לשם ולא פעם אנחנו צריכים למחוק את הפינגים (pings) שנוצרים מקישורים אלו אז במקום לעבוד קשה הנה סניפט שימנע פינגים מקישורים פנימיים.

first קוד:

  • מה: סניפט שעוזר למנוע פינגים פנימיים
  • איפה: בקובץ Functions.php
function stop_innerpings( &$links ) {
    $home = get_option( 'home' );
    foreach ( $links as $l => $link )
        if ( 0 === strpos( $link, $home ) )
            unset($links[$l]);
}
add_action( 'pre_ping', 'stop_innerpings' );
מניעה של פינגים פנימיים

קידום אתרים

+ קישורי NoFollow בקטגוריה ספציפית

תיאור:

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

first קוד:

  • מה: סניפט שמצמיד תג NoFollow לכל הקישורים בתוכן בקטגוריה מסויימת.
  • איפה: בקובץ functions.php
function nofollow_cat_posts($text) {
global $post;
	if( in_category(1) ) { // קבעו את הID של הקטגוריה כאן
		$text = stripslashes(wp_rel_nofollow($text));
	}
	return $text;
}
add_filter('the_content', 'nofollow_cat_posts');
קישורי NoFollow בקטגוריה ספציפית
+ כותרת דף דינמית בהתאם לסוג התוכן

תיאור:

כל מקדם אתרים יודע כי אחד הדברים החשובים במבנה של כל דף הוא הכותרת שלו. למזלנו בוורדפרס הכותרות נטענות באופן אוטומטי אך ישנם סוגי תכנים שונים כמו לדוגמה דף הבית, דף בודד (עמוד), פוסט, קטגוריה וכן הלאה. הסניפט הבא יאפשר לכם לעשות מבנה מעט שונה עבור כל סוג של תוכן באתר וורדפרס שלכם. * הערה: בקרו בדף [linkfx style="1" url="https://sagive.co.il/professional-library/wordpress-web-development/building-wordpress-theme-part-8/"]תגי מטא אוטומטיים בוורדפרס[/linkfx] לסניפט מעודכן עם הסברים

first קוד:

  • מה: סניפט גמיש אשר מחזיר כותרת דף בהתאם לסוג התוכן.
  • איפה: בקובץ header.php (לרוב)
<title>
<?php
// כותרת של דף הבית - מבנה: שם האתר | תיאור
if (is_home())	{ 
	echo bloginfo('name'). "|" . bloginfo('description');
}

// כותרת של תוצאת חיפוש - מבנה: מחרוזת החיפוש | שם האתר
if (is_search())   { 
	echo the_search_query() . "|" . bloginfo('name');
} 

// כותרת של פוסט בודד - מבנה: כותרת הפוסט
if (is_single())	{
	echo wp_title('');
}

// כותרת של עמוד - מבנה: כותרת העמוד | שם האתר
if (is_page())	{ 
	echo wp_title(''). "|" . bloginfo('name');
}

// כותרת קטגוריה - מבנה: כותרת קטגוריה | שם האתר
if (is_category())	{
	echo single_cat_title(). "|" .bloginfo('name');
}

// כותרת ארכיון חודשי - מבנה: שם החודש | שם האתר
if (is_month())	{
	echo the_time('F'). "|" .bloginfo('name');
}

// כותרת תג - מבנה: שם התג | שם האתר
if (is_tag())	{
	echo single_tag_title(). "|" .bloginfo('name');
}
?>
</title>
כותרת דף דינמית בהתאם לסוג התוכן
+ הוספת תיבת תקציר לעמודים

תיאור:

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

first קוד:

  • מה: סניפט אשר יצור תיבת תקציר לעמודים.
  • איפה: בקובץ Functions.php
if ( function_exists('add_post_type_support') )  {
    add_action('init', 'create_page_excerpts');
    function create_page_excerpts()  {        
        add_post_type_support( 'page', 'excerpt' );
    }
}
הוספת תיבת תקציר לעמודים

ממשק התגובות

+ רשימת תגובות אחרונות עם המון מידע בלי תוסף!

תיאור:

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

first קוד:

  • מה: סניפט תגובות אחרונות ללא תוסף
  • איפה: ישירות בקובץ עצמו לדוגמה בתבנית דף מותאמת
<?php
$comments = get_comments( array(
	'number'    => 10, // כאן כמות התגובות שתרצו להחזיר

	'status'    => 'approve' // כאן סוג התגובות 

) );

foreach($comments as $eachComment){

// אוספים את המידע ומקצים אותו למשתנים

$commentID = comment_ID;
$commentAuthorEmail = $eachComment->comment_author_email;
$commentPostId = $eachComment->comment_post_ID;
$commentPostTitle = get_the_title( $commentPostId );
$commentPostUrl = get_permalink( $commentPostId );
$comment_sidebarnumber = get_comments_number( $commentPostId );

global $wpdb;
$userCommentCount = $wpdb->get_var('SELECT COUNT('.$commentID.') FROM ' . $wpdb->comments. ' WHERE comment_author_email = "' . $commentAuthorEmail . '"');

	echo	'<div style="border: 1px solid #ccc; padding: 10px;">';
	echo	'<ul style="margin: 0px;">';
	echo	'<li>שם המגיב: '. $eachComment->comment_author .'</li>';
	echo	'<li>הגיב לפוסט: <a href="'.$commentPostUrl.'">'. $commentPostTitle .'</a></li>';
	echo	'<li>תאריך תגובה: '. $eachComment->comment_date .'</li>';
	echo	'<li>אתר המגיב: '. $eachComment->comment_author_email .'</</li>';
	echo	'<li>אימייל המגיב: '. $eachComment->comment_author_email .'</</li>';
	echo	'<li>כמה תגובות יש למגיב זה? '. $eachComment->comment_author .' הגיב '. $userCommentCount .' פעמים באתר</</li>';
	echo	'</ul>';
	echo	'<p style="padding: 10px;"><strong>'. $eachComment->comment_author .' כתב</strong>: '. $eachComment->comment_content .'</p>';
	echo	'</div>';

}
?>
רשימת תגובות אחרונות עם המון מידע בלי תוסף!
+ רוצים את הטופס והתגובות בתפריט צד?

תיאור:

הסניפט הבא די מורכב כיוון שהוא דורש ידע בCSS כדי ליצור מראה סביר והבנה של PHP כדי לעשות שינויים אבל אם אתם רוצים מאיזושהי סיבה להציג את הטופס של התגובות והתגובות עצמן בסרגל צד הנה וידג'ט שעושה את זה בשבילכם לאחר שתמקמו את הסניפט הבא בקובץ functions.php.

first קוד:

  • מה: סניפט שיוצר וידג'ט תגובות שיופיע רק בפוסטים
  • איפה: בקובץ Functions.php
<?php
class commentsCustomWidget extends WP_Widget {
    function commentsCustomWidget() {
        $widget_ops = array('classname' => 'custom_comments_widget', 'description' => __( 'a widget that displays comments and commentform', 'your_textdomain') );
        $this->WP_Widget('custom-comment-widget', __('WPE Comments', 'your_textdomain'), $widget_ops);
    }
    function widget($args, $instance) {
        if(is_single()) {
            extract($args);
            global $post;
            echo $before_widget;
            comments_template();
            echo $after_widget;
        }
    }
    function update($new_instance, $old_instance) {
        $instance = $old_instance;
        return $instance;
    }
    function form($instance) {
        ?>
        <p><?php _e('This widget will be displayed only in posts.', 'your_textdomain'); ?></p>
       <?php
    }
}
register_widget('commentsCustomWidget');
?>
רוצים את הטופס והתגובות בתפריט צד?
+ קלאס שונה לתגובות של מנהל האתר

תיאור:

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

first קוד:

  • מה: סניפט תגובות אחרונות ללא תוסף
  • איפה: ישירות בקובץ עצמו לדוגמה בתבנית דף מותאמת
if (1 == $comment->user_id)
echo 'siteadmin'; // זה הClass שיתווסף לתגובת מנהל האתר.
קלאס שונה לתגובות של מנהל האתר
+ סך מספר התגובות באתר

תיאור:

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

first קוד:

  • מה: סניפט אשר מחזיר את מספר התגובות באתר.
  • איפה: בקובץ ובמקום בו תרצו להציג נתון זה
<?php
$totalcomments = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->comments WHERE comment_approved = '1'"); 
if (0 < $totalcomments) {
	$totalcomments = number_format($totalcomments); 
	echo "There is a total of:".$totalcomments." comments on my website";
}
?>
סך מספר התגובות באתר
+ לסגור את האפשרות להגיב גלובלית באתר

תיאור:

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

first קוד:

  • מה: סוגר את האפשרות להגיב גלובלית באתר
  • איפה: בקובץ Functions.php
function closeCommentsGlobaly($data) { return false; }
add_filter('comments_number', 'closeCommentsGlobaly');
add_filter('comments_open', 'closeCommentsGlobaly');
לסגור את האפשרות להגיב גלובלית באתר
+ להפוך את הקישורים לFollow בתגובות

תיאור:

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

first קוד:

  • מה: סניפט שמסיר את הNoFollow מתגובות של גולשים
  • איפה: בקובץ Functions.php
function commentsTofollow($str) {
    $str = preg_replace(
        '~<a (&#91;^>]*)\s*(["|\']{1}\w*)\s*nofollow([^>]*)>~U',
        '<a ${1}${2}${3}>', $str);
    return str_replace(array(' rel=""', " rel=''"), '', $str);
}
remove_filter('pre_comment_content',     'wp_rel_nofollow');
add_filter   ('get_comment_author_link', 'commentsTofollow');
add_filter   ('post_comments_link',      'commentsTofollow');
add_filter   ('comment_reply_link',      'commentsTofollow');
add_filter   ('comment_text',            'commentsTofollow');
להפוך את הקישורים לFollow בתגובות
+ כמה תגובות פרסם משתמש ספציפי

תיאור:

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

first קוד:

  • מה: סניפט לבדוק כמה תגובות פורסמו על ידי משתמש
  • איפה: בקובץ Functions.php
function countUserComments($userEmail) {
	$args = array(
		'author_email' => $userEmail

	);
	$comments = get_comments( $args );
	echo count($comments);
}

second קוד:

  • מה: סניפט שמפעיל את הפונקציה ובודק את כמות התגובות על פי אימייל
  • איפה: במיקום הרצוי בו יש לנו את האימייל של המשתמש
<?php countUserPosts('userEmail@example.com'); ?>
כמה תגובות פרסם משתמש ספציפי
+ הפעלת תגובות משורשרות

תיאור:

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

first קוד:

  • מה: סניפט תגובות אחרונות ללא תוסף
  • איפה: בקובץ Functions.php
<?php
function activateThreding(){
    if (is_singular() AND comments_open() AND (get_option('thread_comments') == 1)) {
		// "מפעילים" את הסקריפט המובנה של וורדפרס
		wp_enqueue_script('comment-reply');
    }
}
add_action('get_header', 'activateThreding');
?>
הפעלת תגובות משורשרות
+ הסרת שדה כתובת אתר בטופס התגובות

תיאור:

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

first קוד:

  • מה: הסרת שדה כתובת אתר בטופס תגובות
  • איפה: בקובץ functions.php
function remove_comment_urlfield($fields) {
    unset($fields['url']);
    return $fields;
}
add_filter('comment_form_default_fields','remove_comment_urlfield');
הסרת שדה כתובת אתר בטופס התגובות

ניהול הזנת RSS

+ נטרול ההזנת RSS שלכם

תיאור:

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

first קוד:

  • מה: סניפט אשר ינטרל את הפעילות של ההזנת RSS שלכם.
  • איפה: בקובץ Functions.php
function disableMyFeed() {
// שוב אני מזכיר שכדי להשתמש בעברית אתם צריכים לשנות את הקידוד של הדף לUTF-8 ללא בום אך עדיף להשאיר אנגלית ולהשתמש בקבצי תרגום.
wp_die( __('לא קיימת הזנת RSS - אנא בקרו ב: <a href="'. get_bloginfo('url') .'">דף הבית שלנו</a>!') );
}
add_action('do_feed', 'disableMyFeed', 1);
add_action('do_feed_rdf', 'disableMyFeed', 1);
add_action('do_feed_rss', 'disableMyFeed', 1);
add_action('do_feed_rss2', 'disableMyFeed', 1);
add_action('do_feed_atom', 'disableMyFeed', 1);
נטרול ההזנת RSS שלכם
+ הצהרה על קיומה של הזנת RSS

תיאור:

כולנו מכירים את זה (או לפחות רובנו) שהדפדפן מציג סמל של הזנת RSS בשורת הכתובת של האתר בו אנו מבקרים. כאשר מדובר על אתר וורדפרס עלינו להציג את הקוד המתאים כדי להצהיר על הזנת RSS וזאת עושים בראש המסמך שלנו בין התג Head לתג הסוגר /head.

first קוד:

  • מה: סניפט אשר מצהיר על הזנת RSS בקלות.
  • איפה: בקובץ functions.php
function declare_rss() {
	if (function_exists('feed_links')) {
		feed_links();
	} else {
		return;
	}
}

second קוד:

  • מה: איך להשתמש
  • איפה: בקובץ Header.php בין >head> ל >/head>
<?php declare_rss(); ?>
הצהרה על קיומה של הזנת RSS
+ הצגת הזנת RSS בקלות

תיאור:

רוצים להציג הזנת RSS באתר שלכם? יש דרך קלה מאוד לעשות את בוורדפרס בעזרת טיפ-טיפה PHP וקצת HTML. הסניפט הבא יחזיר רשימה של פריטים מהזנת RSS מסוימת לבחירתכם. בנוסף תוכלו לבחור את כמות הפריטים שחוזרים ואם אתם יודעים קצת CSS אפילו לעשות זאת בצורה מעוצבת.

first קוד:

  • מה: סניפט אשר מחזיר פריטים מתוך הזנת RSS.
  • איפה: ישירות במקום / קובץ בו תרצו להציג את ההזנת RSS
<?php 
include_once(ABSPATH.WPINC.'/feed.php');
$rss = fetch_feed('https://feeds.feedburner.com/sagive');
$maxrssitems = $rss->get_item_quantity(5);
$all_rss_items = $rss->get_items(0, $maxrssitems);
?>
<ul>
<?php if ($maxrssitems == 0) echo '<li>No items.</li>';
else
// Loop through each feed item and display each item as a hyperlink.

foreach ( $all_rss_items as $item ) : ?>
<li>
<a href='<?php echo $item->get_permalink(); ?>'
title='<?php _e('Posted on:', 'your_text_domain'); ?> <?php echo $item->get_date('j F Y | g:i a'); ?>'>
<?php echo $item->get_title(); ?></a>
</li>
<?php endforeach; ?>
</ul>
הצגת הזנת RSS בקלות
+ הצגה של הזנת RSS בלוח הבקרה של וורדפרס

תיאור:

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

first קוד:

  • מה: סניפט שמציג הזנת RSS בלוח הבקרה של וורדפרס
  • איפה: בקובץ function.php
add_action('wp_dashboard_setup', 'remove_dashboard_widgets');
function remove_dashboard_widgets() {
     global $wp_meta_boxes;
     // remove unnecessary widgets

     // var_dump( $wp_meta_boxes['dashboard'] ); // use to get all the widget IDs

     unset(
          $wp_meta_boxes['dashboard']['normal']['core']['dashboard_plugins'],
          $wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary'],
          $wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']
     );
     // add a custom dashboard widget

     wp_add_dashboard_widget( 'dashboard_custom_feed', 'News from Sagive SEO', 'dashboardSelectedFeedDisplay' ); //add new RSS feed output

}
function dashboardSelectedFeedDisplay() {
     echo '<div class="rss-widget">';
     wp_widget_rss_output(array(
          'url' => 'https://sagive.co.il/feed',
          'title' => 'What\'s up at Sagive SEO',
          'items' => 2,
          'show_summary' => 1,
          'show_author' => 0,
          'show_date' => 1,
     ));
     echo "</div>";
}
הצגה של הזנת RSS בלוח הבקרה של וורדפרס
+ אי הכללה של קטגוריה מסוימת בהזנת RSS

תיאור:

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

first קוד:

  • מה: סניפט שמסנן קטגוריה מסוימת ולא מציג אותה בהזנת RSS.
  • איפה: בקובץ function.php
function filterRssCat($query) {
    if ($query->is_feed) {
        $query->set('cat','-3'); // אל תשכחו לסנן את הקטגוריה המתאימה

    }
return $query;
}
 
add_filter('pre_get_posts','filterRssCat');
אי הכללה של קטגוריה מסוימת בהזנת RSS

תמונת Thumbnail

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

תיאור:

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

first קוד:

  • מה: סניפט שמציג את התמונה הראשית של הפוסט.
  • איפה: בקובץ ובמיקום הרצוי בתוך הLOOP – במקרה זה בקובץ Single.php
<?php if ( has_post_thumbnail() ) { the_post_thumbnail( 'post' ); } ?>
הצגה של תמונת פוסט ראשית במיקום רצוי
+ הצגה וקביעת הגודל של תמונת הפוסט הראשית

תיאור:

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

first קוד:

  • מה: סניפט שמציג תמונת פוסט ראשית בגדלים שונים.
  • איפה: בקובץ ובמיקום הרצוי בתוך הLOOP – במקרה זה בקובץ Single.php
<?php 
// מחקו את השורות של הגדלים בהם אתם לא מעוניינים
if ( has_post_thumbnail() ) { 
the_post_thumbnail( array(100,100) );  // גודל מותאם אישית במקרה זה = 100פיקסלים על 100 פיקסלים
the_post_thumbnail('thumbnail'); } // Default: Thumbnail = 150px x 150px
the_post_thumbnail('medium');      // Default: Medium = 300px x 300px
the_post_thumbnail('large');      // Default: Medium = 640px x 640px
the_post_thumbnail('full');      // Default: full = הגודל המלא של התמונה שהעליתם
?>
הצגה וקביעת הגודל של תמונת הפוסט הראשית
+ הפעלת התכונה תמונת פוסט ראשית (Thumbnail) בפוסטים

תיאור:

אם אתם משתמשים בתבנית שרכשתם או תבנית שהורדתם לרוב יוגדר בה כבר השימוש בתמונות פוסט ראשיות (Thumbnails) אך אם אתם בונים תבנית משלכם ורוצים לאפשר את השימוש בתמונת פוסט ראשית הטמיעו את הקוד הבא בקובץ Functions.php וסיימתם!

first קוד:

  • מה: סניפט שמאפשר שימוש בתמונת פוסט ראשית.
  • איפה: בקובץ Functions.php
// מאפשרי שימוש בתמונת פוסט ראשית בפוסטים רגילים
add_theme_support( 'post-thumbnails', array( 'post' ) );

// מגדירים את גודל ברירת המחדל (ניתן להוסיף ,true  לחיתוך אגרסיבי)
add_image_size( 'post', 200, 150 ); 
הפעלת התכונה תמונת פוסט ראשית (Thumbnail) בפוסטים
+ אחזור כתובת הURL של תמונת פוסט

תיאור:

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

first קוד:

  • מה: כתובת הURL של תמונת פוסט
  • איפה: ישירות במיקום בו אתם רוצים להציג את התוצאה
$thumbUrl = wp_get_attachment_url(get_post_thumbnail_id($post->ID));

second קוד:

  • מה: הדגמה של שימוש
  • איפה: ישירות בקוד התבנית והיכן שאתם מציגים את התמונה
$thumbUrl = wp_get_attachment_url(get_post_thumbnail_id($post->ID));

// אם אין תמונת פוסט קח תמונת ברירת מחדל
if(!$thumbUrl) {$thumbUrl = get_bloginfo('template_url').'/images/no-img.jpg';}

<img src="<?php echo $thumbUrl; ?>" alt="<?php the_title(); ?>" class="img-responsive img-thumbnail" />
אחזור כתובת הURL של תמונת פוסט

קיצורי קוד

+ קיצור קוד שתי עמודות

תיאור:

פעמים רבות אנו רוצים ליצור שתי עמודות מבלי לכתוב הרבה CSS או טבלה בשביל לעשות את זה. הקיצור קוד הבא יעזור לנו לעשות את זה בקלות!

first קוד:

  • מה: סניפט שיוצר קיצור קוד של שני עמודות.
  • איפה: בקובץ Functions.php
function half( $atts, $content = null ) {
	return '<div class="container"><div class="half">' . do_shortcode($content) . '</div>';
}
add_shortcode('half', 'half');
 
function half_last( $atts, $content = null ) {
	return '<div class="half_last">' . do_shortcode($content) . '</div><div class="colfix"></div></div>';
}
add_shortcode('half_last', 'half_last');

second קוד:

  • מה: הCSS לקיצור קוד
  • איפה: בקובץ style.css
.one_half { width:45%; padding-bottom: 20px;position:relative; margin-left:5%; float:right; }
.half_last { width:45%; padding-bottom: 20px; float:right; clear: left;}
.colfix { clear: both; }

third קוד:

  • מה: הדגמה של שימוש
  • איפה: ישירות בפוסטים / עמודים בזמן שאתם כותבים את התוכן.
[half]
אני טקסט שיופיע בעמודה הראשונה. העמודה הראשונה תהיה בצד ימין
[/half]
[half_last]
אני טקסט שיופיע בעמודה השנייה ואופיע בצד שמאל.
[/half_last]
קיצור קוד שתי עמודות
+ קיצור קוד שעושה רקע צהוב לטקסט נבחר

תיאור:

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

first קוד:

  • מה: קיצור קוד שיעשה רקע צהוב לטקסט מסוים.
  • איפה: בקובץ Functions.php
function yellowbg_highlight($atts, $content = null) {
extract(shortcode_atts(array(
 'color' => 'yellow',
 'font' => '#000000'
 ), $atts));
 return "<FONT style=\"BACKGROUND-COLOR: $color; color: $font\">$content</font>";
}
add_shortcode('yellowbg','yellowbg_highlight');

second קוד:

  • מה: הדגמה של שימוש
  • איפה: ישירות בפוסטים / עמודים בזמן שאתם כותבים את התוכן.
[yellowbg]אני טקסט עם רקע צהוב[/yellowbg]
קיצור קוד שעושה רקע צהוב לטקסט נבחר
+ קיצור קוד שעושה קו הפרדה (hr)

תיאור:

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

first קוד:

  • מה: קיצור קוד שיכניס קו הפרדה מסוג HR למיקום הרצוי
  • איפה: בקובץ Functions.php
function divider() {
        return '<div class="divider"> </div>';
}
add_shortcode('hr', 'divider');

second קוד:

  • מה: הCSS שצריך בשביל העיצוב. (שנו לצרכים שלכם)
  • איפה: בקובץ style.css
.divider {
 border-bottom: 1px solid #CCCCCC;
 margin-bottom: 15px;
}

third קוד:

  • מה: הדגמה של שימוש
  • איפה: ישירות בפוסטים / עמודים בזמן שאתם כותבים את התוכן.
[hr]
קיצור קוד שעושה קו הפרדה (hr)
+ קיצור קוד שמחזיר רשימת פוסטים מתוך קטגוריה נבחרת

תיאור:

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

first קוד:

  • מה: סניפט שמאפשר להחזיר רשימת פוסטים מתוך קטגוריה מסוימת.
  • איפה: בקובץ Functions.php
function sg_get_posts_list($atts, $content = null) {
	 extract(shortcode_atts(array(
	 "num" => 100,
	 "cat" => 10
	 ), $atts));
	 
	global $post;
	$myposts = get_posts('numberposts='.$num.'&order=DESC&orderby=post_date&category='.$cat);
	$retour='<ul class="myposts">';
	
	foreach($myposts as $post) :
	setup_postdata($post);
	$retour.='<li><a href="'.get_permalink().'">'.the_title("","",false).'</a></li>';
	endforeach;
	$retour.='</ul> ';
	
	return $retour;
}
add_shortcode("sgcatposts", "sg_get_posts_list");

second קוד:

  • מה: הדגמה של שימוש
  • איפה: ישירות בפוסטים / עמודים בזמן שאתם כותבים את התוכן.
// cat = הID של הקטגוריה המבוקשת
// amount = כמות הפוסטים שנרצה להחזיר
[sgcatposts cat="1" num="10"]
קיצור קוד שמחזיר רשימת פוסטים מתוך קטגוריה נבחרת
+ קיצור קוד שמחזיר קישור

תיאור:

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

first קוד:

  • מה: קיצור קוד שמחזיר קישור שקבענו מראש..
  • איפה: בקובץ Functions.php
function homeURL() {
        return 'https://sagive.co.il';
}
add_shortcode('sagive', 'homeURL');

second קוד:

  • מה: הדגמה של שימוש
  • איפה: ישירות בפוסטים / עמודים בזמן שאתם כותבים את התוכן.
<a href="&#91;sagive&#93;">קידום אתרים בגוגל</a>
קיצור קוד שמחזיר קישור
+ קיצור קוד שמחזיר את התוכן מדף אחר

תיאור:

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

first קוד:

  • מה: סניפט שמאפשר להחזיר את התוכן של דף אחר באתר שלנו.
  • איפה: בקובץ Functions.php
function sagive_includepostcontent($atts) {
 
 $thepostid = intval($atts[postid]);
 $output = '';
 
 query_posts("p=$thepostid&post_type=page");
 if (have_posts()) : while (have_posts()) : the_post();
 $output .= get_the_content($post->ID);
 endwhile; else:
 // failed, output nothing

 endif;
 wp_reset_query();
 
 return $output;
 
}
add_shortcode("includepost", "sagive_includepostcontent");

second קוד:

  • מה: הדגמה של שימוש
  • איפה: ישירות בפוסטים / עמודים בזמן שאתם כותבים את התוכן.
// postid = הID של הפוסט המבוקש
[includepost postid=110]
קיצור קוד שמחזיר את התוכן מדף אחר
+ קיצור קוד של DIV פשוט

תיאור:

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

first קוד:

  • מה: סניפט שעוטף טקסט בDIV עם קלאס שקבעתם מראש.
  • איפה: בקובץ Functions.php
function simple_div( $atts, $content = null ) {   
	return '<div class="example">' . $content . '</div>';
}
add_shortcode('simplediv','simple_div');

second קוד:

  • מה: דוגמה לשימוש
  • איפה: ישירות בפוסטים / עמודים בזמן שאתם כותבים את התוכן.
[simplediv]
טקסט לדוגמה עליו יוחלו הגדרות CSS של הקלאס example... זה יתרון רציני ויעזור לנו להגדיר בקלות עיצובים מוכנים.
[/simplediv]
קיצור קוד של DIV פשוט
+ הצגה של מודעת אדסנס משולבת בתוך התוכן

תיאור:

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

first קוד:

  • מה: קיצור קוד שמכניס מודעת אדסנס שהגדרנו מראש
  • איפה: בקובץ Functions.php
function showads() {
		// להחליף בקוד של המודעה שלכם

        return '
		<div id="adsense"><script type="text/javascript"><!--
        google_ad_client = "pub-XXXXXXXXXXXXXX";
         google_ad_slot = "4668915978";
         google_ad_width = 468;
         google_ad_height = 60;
         //-->
         </script>
 
         <script type="text/javascript"  src="https://pagead2.googlesyndication.com/pagead/show_ads.js">
         </script></div>';
 }
 add_shortcode('adsense', 'showads');

second קוד:

  • מה: הדגמה של שימוש
  • איפה: ישירות בפוסטים / עמודים בזמן שאתם כותבים את התוכן.
[adsense]
הצגה של מודעת אדסנס משולבת בתוך התוכן
+ הסרת תג פסקה ריק בעזרת קיצור קוד

תיאור:

הסניפט הבא (קצת מורכב) מגיע בשלושה חלקים ועוזר לנו להסיר תג פסקה (p) ריק באזורים שאנו רוצים בעזרת קיצור קוד כלומר תוך כדי שאנו כותבים פוסטים / דפים. שימו לב כי יש שלושה חלקים לסניפט זה. הראשון והשני הולכים לקובץ functions.php והשלישי הוא קובץ נפרד מסוג ג'אווה סקריפט שאנו מכלילים. שימו לב לשנות את מסלול ההכללה במקטע הקוד הראשון למסלול של קובץ הJS / המיקום בו שמתם את קובץ הJS.

first קוד:

  • מה: פונקציה שמכלילה את קובץ הJS בו הפקודה
  • איפה: בקובץ functions.php
// FRONTEND SIDE JS
function shortcodes_frontend_js() {
    wp_enqueue_script( 'unwanted-tags', get_bloginfo('template_url').'/js/remove-unwanted-tags.js', array('jquery'));
}
add_action('wp_enqueue_scripts', 'shortcodes_frontend_js');

// THE SHORTCODE
function sagive_remove_p( $atts, $content = null ) {
   return '<div id="removep">'.do_shortcode($content).'</div>';
}
add_shortcode('removep', 'sagive_remove_p');

second קוד:

  • מה: קובץ JS אשר מכיל פונקצית jQuery להסרת פסקאות ריקות
  • איפה: קובץ בפני עצמו בשם remove-unwanted-tags.js. עדיף למקם בתוך תיקייה בשם JS
jQuery(function($){
	$("div#removep p").each(function() {
    var $this = $(this);
    if($this.html().replace(/\s| /g, '').length == 0)
        $this.remove();
	});
})

third קוד:

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

Custom Fields

+ מחזירים ערך מתוך שדה מותאם (Custom Field) מחוץ ללופ

תיאור:

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

first קוד:

  • מה: סניפט שמחזיר את הערך של Custom Field מחוץ ללופ
  • איפה: בקובץ ובמיקום הרצוי בו תרצו שהערך יופיע
<?php
// key = מגדירים את הID של הפוסט
global $wp_query;
$postid = $wp_query->post->ID;

// mykey = שם השדה המותאם 
$key="mykey";
$result = get_post_meta($postid, $key, true);
echo $result;
?>
מחזירים ערך מתוך שדה מותאם (Custom Field) מחוץ ללופ
+ מחזירים ערך מתוך שדה מותאם (Custom Field)

תיאור:

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

first קוד:

  • מה: סניפט שמחזיר את הערך של Custom Field
  • איפה: בקובץ ובמיקום הרצוי בו תרצו שהרשימה תופיע
<?php
// key = שם השדה המותאם 
$key="mykey"; 
echo get_post_meta($post->ID, $key, true);
?>
מחזירים ערך מתוך שדה מותאם (Custom Field)
+ אחזור שדה מידע בעזרת קיצור קוד

תיאור:

סניפט שימושי במיוחד אשר כתבתי עבור [linkfx style="1" url="https://sagive.co.il/professional-library/wordpress-web-development/building-wordpress-theme-part-1/"]המדריך לבניית תבנית וורדפרס[/linkfx] ומחזיר את הערך של Custom Field מפוסט מסוים בעזרת קיצור קוד כלומר קוד שאפשר להשתמש בו בצורה ישירה כאשר כותבים פוסטים! זה מעולה וחוסך את הצורך לכתוב את אותו הקוד פעם אחר פעם ולבזבז אנרגיה וזמן.

first קוד:

  • מה: מחזיר את הערך של Custom Fiels מתוך פוסט מסוים
  • איפה: בקובץ functions.php
/*** GET POST META ***/
function get_postmeta($atts, $content = null) {

	extract(shortcode_atts(array(
	'postid' => '',
	'metakey' => 'fastnav',
	), $atts));
	
	return do_shortcode(get_post_meta($postid, $metakey, true));
}
add_shortcode('gpostmeta','get_postmeta');

second קוד:

  • מה: הדגמה של שימוש בסניפט
  • איפה: ישירות כאשר כותבים פוסט
[gpostmeta postid="926" metakey="fastnav"]
אחזור שדה מידע בעזרת קיצור קוד

תאריכים

+ מחזיר תאריך עתידי ביחס לתאריך של היום

תיאור:

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

first קוד:

  • מה: סניפט שמחזיר תאריך עתידי
  • איפה: בקובץ ובמיקום הרצוי בו תרצו להציג את התאריך העתידי
<?php
// 60 * 60 * 24 * 7 = היא מחרוזת ששוויה שבוע אחד... שנו את זה כאוות נפשכם
$future_timestamp = get_the_date('U') + (60 * 60 * 24 * 7);
echo date('Y-m-d', $future_timestamp);
?>
מחזיר תאריך עתידי ביחס לתאריך של היום
+ מבנה תאריך ומבנה שעה בהתקנת וורדפרס שלכם

תיאור:

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

first קוד:

  • מה: סניפט שמחזיר את המבנה של התאריך והשעה
  • איפה: בקובץ ובמיקום בו תרצו להשתמש במשתנים אלו
<?php
// מבנה תאריך
$dateFormat = get_option('date_format');

// מבנה שעה
$timeFormat = get_option('time_format');

echo $dateFormat."<br />";
echo $timeFormat."<br />";
?>
מבנה תאריך ומבנה שעה בהתקנת וורדפרס שלכם
+ הצגת תאריך בו פורסם הפוסט

תיאור:

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

first קוד:

  • מה: סניפט שמחזיר את התאריך של הפוסט
  • איפה: בקובץ ובמיקום הרצוי בו תרצו שהתאריך יופיע (רק בתוך הלופ)
<span class="entry-date"><?php echo get_the_date(); ?></span>
הצגת תאריך בו פורסם הפוסט
+ בדיקת גיל הפוסט ופעולה מותנית

תיאור:

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

first קוד:

  • מה: סניפט שמאפשר תגובה מותנית לגיל הפוסט
  • איפה: בקובץ הרצוי בתוך הלופ של וורדפרס

function check_post_age( $days = 14 ) { if( !is_single() ) return false;

$id = get_the_ID(); $date = get_post_field( 'post_date', $id );

if( strtotime( $date ) < strtotime( "-{$days} days" ) ) { // מה תרצו לעשות אם הפוסט בן יותר מארבעה עשרה יום? } else { // מה תרצו לעשות אם הפוסט בן פחות מארבעה עשרה יום? } } [/php]

בדיקת גיל הפוסט ופעולה מותנית

פעולות אימייל

+ שליחת הודעה לחברי האתר בפרסום פוסט חדש

תיאור:

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

first קוד:

  • מה: שליחת פוסט באופן אוטומטי לכל חברי האתר בעת פרסום פוסט חדש
  • איפה: בקובץ functions.php
function email_registered_members($post_ID)  {
    //global $wpdb;

    //$userslistarray = $wpdb->get_results("SELECT user_email FROM $wpdb->users;");

    $wp_user_search = new WP_User_Query( array( 'fields' => array('user_email') ) );
    $userslistarray = $wp_user_search->get_results();
    $arrUsers = array ();
    for ($arr = $userslistarray, $mU = count ($arr), $iU = 0; $iU < $mU; $iU++) {
        $arrUsers&#91;&#93; = $arr&#91;$iU&#93;->user_email;
    } // for

    $users = implode(",", $arrUsers);
     
    mail($users, "פורסם פוסט חדש : " . get_bloginfo('name') , "באתר" . get_bloginfo('siteurl'). "בואו לבקר ולדעת עוד" );
    return $post_ID;
}
add_action('publish_post', 'email_registered_members');
שליחת הודעה לחברי האתר בפרסום פוסט חדש
+ שינוי הכתובת ממנה נשלח כאשר נשלח מהאתר

תיאור:

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

first קוד:

  • מה: סניפט אשר משנה את כתובת האימייל של האתר למיילים יוצאים
  • איפה: בקובץ Functions.php
add_filter('wp_mail_from', 'change_mail_from');
add_filter('wp_mail_from_name', 'change_mail_from_name');

function change_mail_from($old) {
 return 'no-reply@en.sagive.co.il';
}

function change_mail_from_name($old) {
 return 'Sagive SEO';
}
שינוי הכתובת ממנה נשלח כאשר נשלח מהאתר
+ ערפול כתובת אימייל חשופה באתר וורדפרס

תיאור:

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

first קוד:

  • מה: סניפט אשר עושה ערפול ומסתיר כתובת אימייל חשופה
  • איפה: בקובץ הרצוי ובמיקום בו אתם מציגים את האימייל שלכם
antispambot('demo@en.sagive.co.il',1 )
ערפול כתובת אימייל חשופה באתר וורדפרס
+ כפתור שלח לחבר פוסט זה

תיאור:

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

first קוד:

  • מה: כפתור שמאפשר לשלוח לחבר קישור לפוסט הנוכחי
  • איפה: בקובץ ובמיקום בו תרצו להציג את הכפתור
<a href="mailto:?subject=<?php the_title();?>&body=<?php the_permalink() ?>" title="<?php _e('Send this article to a freind', 'your_text_domain'); ?>"><?php _e('Send This', 'your_text_domain'); ?></a>
כפתור שלח לחבר פוסט זה

תיקוני אבטחה

+ נטרול Hotlinking בעזרת htaccess

תיאור:

הסניפט הבא נועד כדי לחסום hotlinking של תמונות (או מסמך מכל סוג אחר) ואנו עושים זאת בעזרת קובץ הhtaccess שלנו על ידי הטמעת קוד קצר אחרי כל הקוד המוצג בקובץ htaccess הקיים. * הערה: זכרו לשנות את המילה example לשם האתר שלכם - במקרה שלי זה sagive

first קוד:

  • מה: נטרול hotlinking בעזרת htaccess
  • איפה: בקובץ htaccess אחרי הקוד הקיים
# HOTLINK PROTECTION - Method 1
<IfModule mod_rewrite.c>
 RewriteEngine on
 RewriteCond %{HTTP_REFERER} !^$
 RewriteCond %{REQUEST_FILENAME} -f
 RewriteCond %{REQUEST_FILENAME} \.(gif|jpe?g?|png)$ [NC]
 RewriteCond %{HTTP_REFERER} !^https?://([^.]+\.)?example\. [NC]
 RewriteRule \.(gif|jpe?g?|png)$ - [F,NC,L]
</IfModule>
נטרול Hotlinking בעזרת htaccess
+ מסתירים את הודעת ה-עדכן את הוורדפרס למי שאינו מנהל

תיאור:

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

first קוד:

  • מה: סניפט אשר יסתיר את ההודעה עדכן את וורדפרס
  • איפה: בקובץ Functions.php
global $user_login;
get_currentuserinfo();
// בודק אם המשתמש יכול לעדכן תוספים
if (!current_user_can('update_plugins')) {  
	add_action( 'init', create_function( '$a', "remove_action( 'init', 'wp_version_check' );" ), 2 );
	add_filter( 'pre_option_update_core', create_function( '$a', "return null;" ) );
}
מסתירים את הודעת ה-עדכן את הוורדפרס למי שאינו מנהל
+ מסתירים את ההודעה בעת שגיאת התחברות

תיאור:

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

first קוד:

  • מה: סניפט אשר יסתיר את הודעת השגיאה בעת נסיון התחברות שגוי
  • איפה: בקובץ Functions.php
add_filter('login_errors',create_function('$a', "return null;"));
מסתירים את ההודעה בעת שגיאת התחברות
+ מגבילים משתמש מסוים בממשק הניהול של וורדפרס

תיאור:

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

first קוד:

  • מה: הסתרת פריטים בממשק הניהול ממשתמש ספציפי
  • איפה: בקובץ Functions.php
function remove_menus() {
    global $menu;
    global $current_user;
    get_currentuserinfo();
    
   // קבעו את שם המשתמש כאן
    if($current_user->user_login == 'sagive')    {
       // הסירו כאן את השורות שאתם כן רוצים שהמשתמש יראה
        $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');
מגבילים משתמש מסוים בממשק הניהול של וורדפרס
+ הפניה אוטומטית לאחר נסיון התחברות כושל (גרסה 2)

תיאור:

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

first קוד:

  • מה: ביצוע Redirect לאחר נסיון התחברות כושל
  • איפה: בקובץ Functions.php או בקובץ מצורף
add_action( 'wp_login_failed', 'my_front_end_login_fail' );
function my_front_end_login_fail( $username ) {
     $referrer = $_SERVER['HTTP_REFERER'];
     if ( !empty($referrer) && !strstr($referrer,'wp-login') && !strstr($referrer,'wp-admin') ) {
          wp_redirect( $referrer . '?login=failed' );
          exit;
     }
}
הפניה אוטומטית לאחר נסיון התחברות כושל (גרסה 2)
+ הפניה אוטומטית לאחר נסיון התחברות כושל

תיאור:

הסניפט הבא הוא סניפט מדליק אשר יעזור לכם לייאש גולשים מרושעים אשר עשויים לנסות לפרוץ לאתר שלכם בעזרת תכנות Brute Force. מה שהוא עושה זה להפנות נסיונות התחברויות שגויות אל דף רצוי... אצלנו לדוגמה אם תנסו להתחבר ותקבלו שגיאה תופנו לאחד הסרטונים שלנו בYOUTUBE... (תודה על כמות הצפיות).

first קוד:

  • מה: ביצוע Redirect לאחר נסיון התחברות כושל
  • איפה: בקובץ Functions.php או בקובץ מצורף
function redirect_if_loginerror() { 
	echo '
	<script type="text/javascript">
		jQuery(document).ready(function($) {
			var isContains = $("div#login_error").text().indexOf("ERROR:") > -1;
			if(isContains) {
				window.location.replace("https://www.youtube.com/watch?v=G8WMUwHZqng");
			}
		});
	</script>
	';
}
add_action('login_head', 'redirect_if_loginerror');
הפניה אוטומטית לאחר נסיון התחברות כושל
+ הסתרה של גרסת הוורדפרס שלכם

תיאור:

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

first קוד:

  • מה: סניפט אשר יסתיר באיזו גרסה של וורדפרס אתם משתמשים
  • איפה: בקובץ Functions.php
remove_action('wp_head', 'wp_generator');
הסתרה של גרסת הוורדפרס שלכם
+ הגנה על קובץ install

תיאור:

הסניפט הבא מגן על הקובץ Install.php אשר נמצא בתיקייה wp-admin. בעיקרון ניתן למחוק קובץ זה אחרי ההתקנה אבל הוא ישוב למקומו בפעם הבאה שתעדכנו את וורדפרס ולכן זאת לא גישה הגיונית. דרך יותר הגיונית היא למקם (אם לא קיים כבר) קובץ htacess בתוך תיקיית הwp-admin עם קוד אשר מגן על קובץ הinstall של וורדפרס!

שימו לב

[lists style="star" classes=""]
  • אנו ממקמים את הקובץ htaccess בתוך התיקייה wp-admin
  • זה לא אותו קובץ htaccess שקיים בתיקיית השורש אלא אחר לגמרי
  • אם כבר יש לכם קובץ htaccess בתיקייה wp-admin אל תמחקו - רק הוסיפו לו את הקוד הבא
  • אם אתם צריכים קובץ htacess ריק תוכלו להוריד אחד[linkfx style="1" url="https://sagive.co.il/wp-content/uploads/2013/12/blank.htaccess.zip" classes=""]כאן[/linkfx]
  • אם כבר יש לכם קובץ .htaccess בתיקייה wp-admin פשוט הוסיפו את הסניפט הבא אחרון
[/lists]

first קוד:

  • מה: מגנים על install.php בעזרת htaccess
  • איפה: בתוך התיקייה wp-admin
# PROTECT install.php
<Files install.php>
 Order Allow,Deny
 Deny from all
 Satisfy all
</Files>
הגנה על קובץ install

מידע משתמש

+ תמונת הכותב על פי האימייל שלו

תיאור:

אם אתם לא מכירים את גרבטר (gravatar.com) הגיע הזמן. הסניפט הבא יאפשר לכם להשיג את התמונה של הכותב בגרבטר על ידי האימייל של הכותב

first קוד:

  • מה: סניפט שמחזיר את התמונה של הכותב מגרבטר
  • איפה: במיקום הרצוי ובקובץ הרצוי
<?php
if (function_exists('get_avatar')) { 
	get_avatar( 'email@example.com', '100' ); 
}
?>
תמונת הכותב על פי האימייל שלו
+ רשימה של כותבים על פי כמות הפוסטים

תיאור:

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

first קוד:

  • מה: סניפט שמחזיר רשימה של משתמשים באתר
  • איפה: במיקום הרצוי ובקובץ הרצוי
<?php
$authorsListArgs = array(
	'orderby' => 'post_count',
	'order' => 'ASC', // מהגבוה לנמוך
	'order' => '25', // כמות הכותבים
);
$blogusers = get_users($authorsListArgs);

echo '<ul>';
foreach ($blogusers as $user) {
	echo '<li>' . $user->display_name; . '</li>';
}
echo '</ul>';
?>

second קוד:

  • מה: רשימת פרמטרים של המידע אשר מוחזר
  • איפה: לצרכי מידע בלבד...
$user->ID;
$user->user_login;
$user->user_pass;
$user->user_email;
$user->user_url;
$user->user_registered;
$user->user_activation_key;
$user->user_status;
$user->display_name;
רשימה של כותבים על פי כמות הפוסטים
+ כמה פוסטים פרסם המשתמש הספציפי

תיאור:

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

first קוד:

  • מה: סניפט לבדוק כמה פוסטים פורסמו על ידי המשתמש
  • איפה: בקובץ Functions.php
function countUserPosts($userID) {
	$userposts = get_posts('showposts=-1&author='.$userID); 
	return count($userposts);
}

second קוד:

  • מה: סניפט שקורא לפונקציה ומצג את הכמות
  • איפה: במיקום הרצוי בו יש לנו את ה-ID של המשתמש הרצוי
<?php echo countUserPosts($userID); ?>
כמה פוסטים פרסם המשתמש הספציפי
+ הצגת תיבת הכותב עם שם, תיאור וגראבטר

תיאור:

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

first קוד:

  • מה: סניפט של תיבת כותב עם שם הכותב, תיאור הכותב וגראבטר הכותב
  • איפה: בקובץ ובמיקום הרצוי בו תרצו שתיבת הכותב תופיע
<div class="authorBox">
   <div class="authorGravatar"><?php echo get_avatar( get_the_author_email(), '80' ); ?></div>
   <div class="authorName"><?php the_author_meta('display_name'); ?></div>
   <div class="authorDesc"><?php the_author_meta('user_description'); ?></div>
</div>
הצגת תיבת הכותב עם שם, תיאור וגראבטר
+ הצגת קישור לRSS של הכותב בדף author.php

תיאור:

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

first קוד:

  • מה: סניפט שמציג קישור אל ההזנת RSS של הכותב המסוים.
  • איפה: בקובץ author.php במיקום הרצוי
// זכרו לשנות את שם המילה authorname לשם הכותב
<a href="https://example.com/author/authorname/feed/">הרשמו לעדכונים מהכותב</a>
הצגת קישור לRSS של הכותב בדף author.php

אנטי ספאם

+ חוסמים תוכנות ספאם בעזרת PHP

תיאור:

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

first קוד:

  • מה: סניפט שחוסם גישה לקובץ התגובות למרבית תוכנות הספאם
  • איפה: בקובץ functions.php
function check_referrer() {
	if (!isset($_SERVER['HTTP_REFERER']) || $_SERVER['HTTP_REFRER'] == '') {
		wp_die(__('Are you trying to spam? no thanks! move on!', 'sagive'));
	}
}
add_action('check_comment_flood', 'check_referrer')
חוסמים תוכנות ספאם בעזרת PHP
+ חוסמים גישה לאתר ממיקום מרוחק (.htaccess)

תיאור:

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

first קוד:

  • מה: סניפט שחוסם גישה לטופס תגובות ממיקום מרוחק
  • איפה: בקובץ .htaccess
<IfModule mod_rewrite.c>
	RewriteEngine On
	RewriteCond %{REQUEST_METHOD} POST
	RewriteCond %{REQUEST_URI} .wp-comments-post.php*
	RewriteCond %{HTTP_REFERER} !.*pensplus.org.* [OR]
	RewriteCond %{HTTP_USER_AGENT} ^$
	RewriteRule (.*) ^https://%{REMOTE_ADDR}/$ [R=301,L]
</IfModule>
חוסמים גישה לאתר ממיקום מרוחק (.htaccess)

אחזור מידע מותאם

+ הצגת הכותבים האחרונים שנוספו לאתר

תיאור:

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

first קוד:

  • מה: סניפט שמחזיר רשימה של כותבים שהצטרפו לאחרונה
  • איפה: בקובץ ובמיקום הרצוי בו תרצו שהרשימה תופיע
<?php
// כאן אתם יכולים להגדיר את כמות הכותבים שאתם רוצים להציג
$newUsers = $wpdb->get_results("SELECT user_nicename, user_url FROM $wpdb->users ORDER BY ID DESC LIMIT 5");
foreach ($newUsers as $newUser) {
	// כאן אנו בונים את הרשימה ולכן כאן תצטרכו לבחור אם להציג תמונה, שם וכו
	echo '<li>' .get_avatar($newUser->comment_author_email, 45).'<a href="'.$newUser->user_url.'">'.$newUser->user_nicename."</a></li>";
}
?>
הצגת הכותבים האחרונים שנוספו לאתר
+ הוספת פוסטים מותאמים לתוצאות החיפוש

תיאור:

סניפט שימושי בעידן בו כמעט כל אתר שאנו בונים כול פוסט מותאם (Custom post type) אשר יאפשר / יגיד לוורדפרס לכלול פוסטים מותאמים בתוצאות החיפוש של האתר האתר שלנו (חיפוש פנימי באתר). קל להטמעה - רק שנו את השמות לשמות של הפוסטים המותאמים שלכם, הוסיפו לקובץ Functions וסיימתם

first קוד:

  • מה: הוספת פוסטים מותאמים לתוצאות החיפוש
  • איפה: בקובץ functions.php
function cptSearch( $query ) {
	if ( $query->is_search ) { $query->set( 'post_type', array( 'example1', 'example2', 'example3')); } 
	return $query;
}
add_filter( 'the_search_query', 'cptSearch' );
הוספת פוסטים מותאמים לתוצאות החיפוש

ספירת אלמנטים

+ ספירת קטגוריות של פוסט

תיאור:

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

first קוד:

  • מה: ספירת קטגוריות של פוסט
  • איפה: בקובץ Functions.php
function postTermCount($post_id, $taxonomy){
    $args = array( 
        'fields' =>'ids',
        'hide_empty' => 0
     );
    $terms = wp_get_post_terms($post_id, $taxonomy, $args);
    $count = count($terms);
     
    return $count;
}

second קוד:

  • מה: הדגמה של שימוש
  • איפה: בתבנית שלכם בקובץ הרצוי
// ספירת קטגוריות של פוסט ספציפי
echo postTermCount('10', 'category');
 
// ספירת קטגוריות של פוסט מותאם (ערכים לדוגמה)
echo postTermCount('10', 'galleries');
ספירת קטגוריות של פוסט
+ ספירת קטגוריות

תיאור:

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

first קוד:

  • מה: ספירת קטגוריות בוורדפרס
  • איפה: בקובץ Functions.php
unction simpleTermCount($taxonomy, $postype){
    $args = array( 
        'fields' =>'ids',
        'post_type' => $postype,
        'hide_empty' => 0
     );
    $terms = get_terms($taxonomy, $args);
    $count = count($terms);
     
    return $count;
}

second קוד:

  • מה: הדגמה של שימוש
  • איפה: במיקום הרצוי בתבנית שלכם
// ספירת קטגוריות רגילות
echo simpleTermCount('category', 'post');
 
// ספירות טקסונומיות (ערכים לדוגמה)
echo simpleTermCount('gallery_cat', 'galleries');
ספירת קטגוריות
+ ספירת פוסטים על פי סוג וסטטוס

תיאור:

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

first קוד:

  • מה: ספירת פוסטים מכל סוג ובכל ססטוס
  • איפה: בקובץ Functions.php
function simplePostsCounter($type, $status) {
 
    if($type == '') {$type = 'post';}
    if($status == '') {$status = 'publish';}
     
    $foundResults = wp_count_posts($type);
    return $foundResults->$status;
}

second קוד:

  • מה: הדגמה של שימוש
  • איפה: במיקום הרצוי בתבנית שלכם
// ספירה של פוסטים סטנדרטיים אשר פורסמו
echo simplePostsCounter('post', 'published');
 
// ספירה של פוסטים סטנדרטיים במצב טיוטה
echo simplePostsCounter('post', 'draft');
 
// ספירה של פוסטים מותאמים מסוג גלריה אשר ממתינים לפרסום
echo simplePostsCounter('gallery', 'future');
ספירת פוסטים על פי סוג וסטטוס
+ ספירת פוסטים מאת משתמש ספציפי

תיאור:

סניפט מעולה בו השתמשתי פעמים רבות כדי ליצור הגבלים וכללי שימוש באתרים שונים שלי ואשר סופר את כמות הפוסטים אשר פורסמו על ידי משתמש מסוים. שימו לב... הסניפט בודק הכל אבל ניתן להתאים אותו לספור רק פוסטים אשר פורסמו או ממתינים וכו' - תהנו...

first קוד:

  • מה: ספירת פוסטים מאת משתמש
  • איפה: בקובץ Functions.php
function countUserPosts($userID) {
    $userposts = get_posts('showposts=-1&author='.$userID); 
    return count($userposts);
}

second קוד:

  • מה: הדגמה של שימוש
  • איפה: בקובץ ובמיקום הרצוי בתבנית שלכם
echo countUserPosts($userID);
ספירת פוסטים מאת משתמש ספציפי
+ ספירת פוסטים בקטגוריה מסויימת

תיאור:

ממשיכים על אותו הגל של שני הסניפטים הקודמים והפעם אני מציג סניפט / פונקציה אשר תאפשר לכם לספור את כמות הפוסטים בקטגוריה מסוימת בוורדפרס (עובד גם על מונחים מותאמים - Taxonomies) ועושים זאת בעזרת סניפט קצר וקל משקל בו ניתן להשתמש בקלות!

first קוד:

  • מה: ספירת פוסטים בקטגוריה
  • איפה: בקובץ Functions.php
function posts_in_term($catid, $taxonomy) {
    $qTerm = get_term($catid, $taxonomy);
    return $qTerm->count;
}

second קוד:

  • מה: הדגמה של שימוש
  • איפה: בקובץ ובמיקום הרצוי בתבנית שלכם
// סופרים כמה פוסטים בקטגוריה רגילה
echo posts_in_term(1, 'category').' Posts in General Category.';
 
// סופרים כמה פוסטים בטקסונומי ספציפי
echo posts_in_term(1, 'gallery_cat').' Custom Posts Gallery Taxonomy.';
ספירת פוסטים בקטגוריה מסויימת
+ ספירת מילים בפוסט

תיאור:

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

first קוד:

  • מה: ספירת כמות המילים בפוסט
  • איפה: בקובץ Functions.php
function post_wordcount($postid) {
    $content = get_post($postid);
    $completContent = $content->post_content;
    $wordsCount = count(explode(" ", $completContent)); 
 
    return $wordsCount; 
}

second קוד:

  • מה: הדגמה של שימוש
  • איפה: במיקום הרצוי בתבנית שלכם (לרוב בתוך הלופ)
יש בפוסט <?php echo post_wordcount($postid); ?> מילים.
ספירת מילים בפוסט
+ ספירת התגובות של משתמש

תיאור:

סניפט מעולה בו עשיתי שימוש ממש לאחרונה כדי להציע למשתמשים חוזרים / מגיבים אשר הגיבו יותר מפעם אחת הזמנה להצטרף לרשימת התפוצה שלנו כחלק משדרוג טופס התגובות שלנו לטופס תגובות אג'קסי (נסו ותראו!). סניפט אשר סופר את כמות התגובות מאת משתמש מסוים על פי כתובת האימייל שלו.

first קוד:

  • מה: ספירת כמות התגובות של משתמש ספציפי
  • איפה: בקובץ Functions.php
function countUserComments($userEmail) {
    $args = array(
        'author_email' => $userEmail
    );
    $comments = get_comments( $args );
    return count($comments);
}

second קוד:

  • מה: הדגמה של שימוש
  • איפה: בקובץ הרצוי ובמיקום הרצוי בקובץ בתבנית שלכם
echo countUserComments('info@example.com');
ספירת התגובות של משתמש

דיבאגינג

+ רשימת הסקריפטים אשר enqueued לדף הנוכחי!

תיאור:

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

אבל איך יודעים מה נטען לעמוד הנוכחי? קצת מורכב אבל בהחלט אפשרי!

  1. נשים את הסקריפט ישר אחרי התג wp_footer
  2. הסקריפט בודק אם המשתמש הנוכחי מחובר ואם הוא המנהל הראשי
  3. הסקריפט יחזיר רשימת סקריפטים מסוג JS אשר נטענים לדף!
  4. לאחר מכן לעשות wp_dequeue_script כאוות נפשנו!

first קוד:

  • מה: יחזיר רשימת סקריפטים לדף
  • איפה: ישירות אחרי הקוד wp_footer

$user_ID = get_current_user_id();

if(is_user_logged_in() && $user_ID == 1) { global $wp_scripts, $wp_styles;

$queuedJsList = "; $queuedJsList .= '

    '; $queuedJs = $wp_scripts->queue; foreach($queuedJs as $qJs) {$queuedJsList .= '
  • '.$qJs.'
  • ';} $queuedJsList .= '

';

echo $queuedJsList;

}

רשימת הסקריפטים אשר enqueued לדף הנוכחי!
+ הצגת כל המשתנים שרצים ברקע

תיאור:

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

first קוד:

  • מה: סניפט שיציג את כל המשתנים שרצים ברקע
  • איפה: בדף ובמיקום הספציפי בו אתם רוצים להציג את המשתנים
<pre><?php print_r(get_defined_vars()); ?></pre>
הצגת כל המשתנים שרצים ברקע
+ אחזור רשימת הסקריפטים אשר נטענים בדף ספציפי

תיאור:

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

first קוד:

  • מה: מדפיס מזהים של סקריפטים אשר נטענים אל הדף
  • איפה: בקובץ Functions.php

function wpa54064_inspect_scripts() { global $wp_scripts; foreach( $wp_scripts->queue as $handle ) : echo $handle . ' | '; endforeach; } add_action( 'wp_print_scripts', 'wpa54064_inspect_scripts' );

אחזור רשימת הסקריפטים אשר נטענים בדף ספציפי

רשת אתרים

+ תבנית ברירת מחדל ב Multisite

תיאור:

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

first קוד:

  • מה: הגדרת תבנית ברירת מחדל בMultisite
  • איפה: בקובץ Functions.php או בקובץ מצורף אליו
define('WP_DEFAULT_THEME', 'theme-folder-name');
תבנית ברירת מחדל ב Multisite
+ האם המשתמש הנוכחי חבר בבלוג בו הוא צופה?

תיאור:

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

first קוד:

  • מה: בודק שהמשתמש הנוכחי חבר בבלוג הנוכחי
  • איפה: בקובץ Functions.php או בקובץ מצורף אליו
add_action('admin_init','blog_members_only');
add_action('wp_head', 'blog_members_only');

function blog_members_only() {

	if (is_user_logged_in()) {
	
		global $current_user;
		global $current_blog, $blog_id;
		get_currentuserinfo();

		if ( is_user_member_of_blog( $current_user->ID ) ) {
			//
		} else {
			$blogs = get_blogs_of_user( $current_user->ID );
			if($blogs) {
				foreach ($blogs as $blog) {
					if($current_user->ID != 1) {
						echo '<META HTTP-EQUIV="Refresh" Content="0; URL='.$blog->siteurl.'">';    
						exit;
					}
				}
			}	
		}
		
	} else {
		echo '<META HTTP-EQUIV="Refresh" Content="0; URL=https://sagive.co.il">';
	}
}
האם המשתמש הנוכחי חבר בבלוג בו הוא צופה?
+ אם רשת אתרים קיימת

תיאור:

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

first קוד:

  • מה: האם אנו ברשת אתרים?
  • איפה: ישירות במקום בו אתם רוצים לבצע את הבדיקה
<?php
if ( is_multisite() ) { 
     echo 'רשת אתרים מופעלת';
 }
else {
     echo 'לא מותקנת רשת אתרים';
}
?>
אם רשת אתרים קיימת
+ אחזור רשימת הבלוגים ברשת וורדפרס (Multisite)

תיאור:

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

first קוד:

  • מה: מחזיר רשימת בלוגים בוורדפרס Multisite
  • איפה: ישירות היכן שאתם רוצים להציג את הרשימה
<table>
<?php
	$blog_list = wp_get_sites();
	
	foreach ($blog_list AS $blog) {
	
		// EACH BLOG DATA
		$blog_id		=	$blog&#91;'blog_id'&#93;;
		$blog_domain	=	$blog&#91;'domain'&#93;;
		$blog_path		=	$blog&#91;'path'&#93;;
		
		echo '
		<tr>
			<td><a href="'.$blog_domain.'">'.$blog_domain.'</a></td>
		</tr>
		';
	}
?>
</table>
אחזור רשימת הבלוגים ברשת וורדפרס (Multisite)

WooCommerce

+ כמות הפריטים והמחיר הכולל בעגלת קניות

תיאור:

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

first קוד:

  • מה: כמות הפריטים והמחיר הכולל בעגלת הקניות
  • איפה: במיקום בו תרצו להציג את הספירה
<a class="cart-contents" href="<?php echo WC()->cart->get_cart_url(); ?>" title="<?php _e( 'View your shopping cart' ); ?>"><?php echo sprintf (_n( '%d item', '%d items', WC()->cart->cart_contents_count ), WC()->cart->cart_contents_count ); ?> - <?php echo WC()->cart->get_cart_total(); ?></a>
כמות הפריטים והמחיר הכולל בעגלת קניות
+ איך מסירים את הטאבים בדף המוצר?

תיאור:

היום סניפט במלוא מובן המילה - שורת קוד בודדת לאלו ביניכם אשר רוצים להסתיר לחלוטין את הטאבים בדף מוצר בודד באתר אשר עושה שימוש בWooCommerce. במקום לערוך את קוד המקור - רק צרפו את השורה הבא לקובץ Functions.php או קובץ אחר אשר אתם כוללים אל function.php וסיימתם!

first קוד:

  • מה: הסרת הטאבים בדף מוצר
  • איפה: בקובץ functions.php או בקובץ אשר אשר כוללים אליו
remove_action( 'woocommerce_after_single_product_summary', 'woocommerce_output_product_data_tabs', 10 );
איך מסירים את הטאבים בדף המוצר?
+ הסרת העורך משדה התקציר בWooCommerce

תיאור:

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

first קוד:

  • מה: מסיר את העורך של התקציר מחלון עריכת מוצר
  • איפה: בקובץ Functions.php או קובץ שאתם מכלילים אליו
/************************************
**	REMOVE WP EDITOR IN PRODUCTS
************************************/
function remove_product_editor() {
	remove_post_type_support( 'product', 'excerpt' );
}
add_action( 'init', 'remove_product_editor' );
הסרת העורך משדה התקציר בWooCommerce
+ הסרת מוצרים דומים אוטומטיים בWooCommerce

תיאור:

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

first קוד:

  • מה: הסרת מוצרים קשורים בדף מוצר של WooCommerce
  • איפה: בקובץ Functions.php או בקובץ אשר אתם כוללים אליו
function wc_remove_related_products( $args ) {
	return array();
}
add_filter('woocommerce_related_products_args','wc_remove_related_products', 10); 
הסרת מוצרים דומים אוטומטיים בWooCommerce

רק בישראל

+ ריחוף (float) מותנה שפה

תיאור:

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

first קוד:

  • מה: סניפט שמאפשר ריחוף מותאם שפה
  • איפה: בקובץ Functions.php
function fright() {
    if(is_rtl()) {echo 'fright';} else {echo 'fleft';}
}

function fleft() {
    if(is_rtl()) {echo 'fleft';} else {echo 'fleft';}
}

second קוד:

  • מה: קצת CSS שיגיב לפקודה המתאימה
  • איפה: בקובץ style.css
.fright {float: right !important;}
.fleft {float: left !important;}

third קוד:

  • מה: הדגמה של שימוש
  • איפה:
<div class="<?php echo fright(); ?>">אני מרחף ימינה בעברית ושמאלה באנגלית!</div>
ריחוף (float) מותנה שפה

שונות

+ שינוי פוסטים ממתין לפורסם (לכל הפוסטים)

תיאור:

הפונקציה הבאה היא למתשמשים מתקדמים בלבד ואני שומר אותה כאן לצרכי תיעוד וגישה מהירה. מה היא עושה? במקרה הספציפי הבא (ניתן לשנות אותה כמובן) היא מפרסמת את כל הפוסטים שנמצאים במצב "ממתין לאישור" כלומר משנה את הסטטוס שלהם מPending לPublish. שימו לב שניתן לעשות גם את ההיפך או לדוגמה להפוך את כל הפוסטים הממתינים (הPending) לטיוטות וכו'. רק בזהירות ובהצלחה.

first קוד:

  • מה: שינוי הסטטוס של פוסטים בצורה גורפת
  • איפה: לא משנה היכן - יש להריץ פעם אחת!

function change_post_status($post_id,$status){ $current_post = get_post($post_id, 'ARRAY_A'); $current_post['post_status'] = $status; wp_update_post($current_post); }

$args = array( 'post_type' => 'post', 'posts_per_page' => -1, 'post_status' => 'pending', ); $the_query = new WP_Query($args);

if ($the_query->have_posts()) { while ($the_query->have_posts()) { $the_query->the_post();

$pid = get_the_ID(); change_post_status($pid,'publish'); // ניתן לשנות את המילה Publish לכל סטטוס } }

שינוי פוסטים ממתין לפורסם (לכל הפוסטים)
+ פרמלינק חכם

תיאור:

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

first קוד:

  • מה: פרמלינק חכם לכפתורי שיתוף
  • איפה: בדף Functions.php או בקובץ מוכלל אליו
function smart_permalink() {
	
	// HOMEPAGE
	if(is_home() || is_front_page()) {
		return get_bloginfo('home').'/';
	}
	elseif(is_category()) {
		$catid = get_query_var('cat');
		return get_category_link($catid);
	}
	elseif(is_single()) {
		return get_permalink();
	}
	
}

second קוד:

  • מה: הדגמה של שימוש
  • איפה: בתוך הקוד המותאם (דוגמה של כפתור LIKE)
<div class="fb-like" data-href="<?php echo smart_permalink(); ?>" data-width="120" data-layout="button_count" data-show-faces="false" data-send="false"></div>
פרמלינק חכם
+ מקבלים את סוג הדף בו אנו נמצאים עכשיו

תיאור:

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

first קוד:

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

function return_current_theme_file( $template ) { $GLOBALS['current_theme_template'] = basename($template); return $template; } add_action('template_inc

second קוד:

  • מה: מפעיל את הפונקציה בחלק הקודם
  • איפה: במיקום ובדף הרצוי (עדיף בחלק שנטען לכל העמודים)
<?php echo $GLOBALS&#91;'current_theme_template'&#93;; ?>
מקבלים את סוג הדף בו אנו נמצאים עכשיו
+ יצירת דף אוטומטי עם הפעלה של תבנית שבניתם

תיאור:

סניפט זה ייצור דף אוטומטי עם התבנית שבניתם… זה שימושי במיוחד אם אתם מוכרים תבניות וורדפרס או נותנים (כל הכבוד!) [linkfx style="1" url="https://sagive.co.il/category/wp-themes/"]תבנית וורדפרס להורדה בחינם[/linkfx] ואתם רוצים ליצור איזשהו דף ברוכים הבאים או דף עם מידע שימושי לגולש

first קוד:

  • מה: סניפט ליצירת דף חדש עם הפעלת תבנית
  • איפה: בקובץ Functions.php
// כדי להשתמש בעברית עליכם להמיר את קידוד הדף לUTF-8 without BOM
if (isset($_GET['activated']) && is_admin()){
    $new_page_title = 'This would be the page title';
    $new_page_content = 'The actuall page content... You can even use html tags here!';
	
	//כאן אתם יכולים להכניס שם של טמפלט שונה לדף שתצרו לדוגמה custom-page.php

    $new_page_template = ''; 

	// אין מה לערוך מתחת לשורה זאת

	$page_check = get_page_by_title($new_page_title);
	$new_page = array(
		'post_type' => 'page',
		'post_title' => $new_page_title,
		'post_content' => $new_page_content,
		'post_status' => 'publish',
		'post_author' => 1,
	);

	if(!isset($page_check->ID)){
		$new_page_id = wp_insert_post($new_page);
		if(!empty($new_page_template)){
			update_post_meta($new_page_id,'_wp_page_template', $new_page_template);
		}
	}
}
יצירת דף אוטומטי עם הפעלה של תבנית שבניתם
+ התחברות אוטומטית לאתר וורדפרס

תיאור:

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

first קוד:

  • מה: התחברות אוטומטית לוורדפרס
  • איפה: בקובץ functions.php
add_action('init', 'auto_login');
add_action('admin_init', 'auto_login');
function auto_login() {
    if (!is_user_logged_in()) {
      //by user name
      $user = get_user_by( 'login', 'demo' );
      //Or by user id, 2 being the ID of the demo user
      //$user = get_userdata(2);
      wp_set_current_user($user->ID, $user->user_login);
      wp_set_auth_cookie($user->ID);
      do_action('wp_login', $user->user_login);
    }
}
התחברות אוטומטית לאתר וורדפרס
+ העלמת משתמש עם ID אחד ממשתמשים אחרים

תיאור:

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

first קוד:

  • מה: מחביאים משתמש ברשימת המשתמשים
  • איפה: בקובץ Functions.php או בקובץ מצורף אליו
add_action('pre_user_query','yoursite_pre_user_query');
function yoursite_pre_user_query($user_search) {
  $user = wp_get_current_user();
  if ($user->ID!=1) { // Is not administrator, remove administrator
    global $wpdb;
    $user_search->query_where = str_replace('WHERE 1=1',
      "WHERE 1=1 AND {$wpdb->users}.ID<>1",$user_search->query_where);
  }
}
העלמת משתמש עם ID אחד ממשתמשים אחרים
+ הסרת תג P עוטף מהערות קוד

תיאור:

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

first קוד:

  • מה: מניעת תג P עוטף סביב הערות קוד
  • איפה: בקובץ Functions.php או בקובץ מצורף אליו
	// STOP WP FROM P WRAPPING COMMENTS IN CODE
	function filter_ptags_on_comments($content){
		$fixcontent	=	str_replace('<p><!--', '<!--', $content);
		$fixcontent	=	str_replace('--></p>', '-->', $fixcontent);
		
		return $fixcontent;
	}
	add_filter('the_content', 'filter_ptags_on_comments');
הסרת תג P עוטף מהערות קוד
+ הגדרות ברירת מחדל עבור תמונות בפוסטים

תיאור:

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

first קוד:

  • מה: הגדרת מאפיינים ברירת מחדל לתמונות פוסט
  • איפה: בקובץ Functions.php או בקובץ מצורף (עדיף)
function wps_attachment_display_settings() {
 
    update_option('image_default_align', 'none');
    update_option('image_default_link_type', 'none');
    update_option('image_default_size', 'full-size');
}
add_action( 'after_setup_theme', 'wps_attachment_display_settings' );
הגדרות ברירת מחדל עבור תמונות בפוסטים
  • אהבתם? שתפו!