שורת הפקודות (command-line) הייתה מאז ומתמיד פופולרית בקרב מפתחים מפני שהיא מספקת כלים אשר מאיצים את העבודה ומייעלים את תהליך הפיתוח.
במבט ראשון, קשה להאמין כיצד שימוש בשורת הפקודות לביצוע פעולות מסוימות מהיר יותר מביצוע פעולות אלו בממשק גרפי, אז מטרת מדריך זה היא להסיר ספקות אלו, לפחות בכל מה שקשור לביצוע משימות בוורדפרס.
וורדפרס מספקת ממשק גרפי לכל משימה ניהולית, זו בעצם הסיבה שהיא מערכת ניהול התוכן הפופולרית ביותר ברשת. אך מבחינת יעילות, עבודה עם שורת הפקודות מאפשרת לכם לבצע הרבה פעולות בצורה מהירה ונוחה יותר מאשר ממערכת הניהול של וורדפרס.
WP-CLI הינו סט כלים המספקים פונקציונליות לניהול אתרי וורדפרס. במדריך זה, נתאר את יתרונות השימוש ב WP-CLI ונדגים מספר פקודות מתקדמות שיעשו לכם את החיים קלים יותר בסביבת הפיתוח של וורדפרס.
התקנת WP-CLI
הערה: הצעדים הבאים דורשים עבודה בסביבת UNIX (macOS, Linux או FreeBSD). במידה ואתם משתמשים בווינדוס, הגישה המומלצת היא להשתמש ב-Windows Subsystem for Linux (WSL).
התקנת WP-CLI היא פשוטה. הרעיון הבסיסי הוא להוריד קובץ PHP ולשים אותו בספרייה בה הוא נגיש מכל מקום. אם אתם עובדים בסביבת פיתוח מקומית כמו MAMP, WP-CLI ישתלב בה בקלות. ניתן להוריד את הסקריפט של WP-CLI מ GitHub.
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
לאחר מכן יש לאפשר הרצה של קובץ זה:
chmod +x wp-cli.pharהשלב האחרון הוא להעביר קובץ זה לספריה כך שתוכלו להריץ אותו מכל מקום. שינוי שם הקובץ לשם קצר יותר גם כן רעיון טוב, זו הסיבה ש WP הוא השם שבדרך כלל משתמשים בו:
sudo mv wp-cli.phar /usr/local/bin/wpבזאת נגמרה ההתקנה ובשלב זה אמורה להיות לכם היכולת להריץ את פקודות WP-CLI. ניתן לבדוק האם התהליך הושלם בהצלחה על ידי הרצת הפקודה הזו:
wp --info
עם ההתקנה שלכם בוצעה בהצלחה אתם אמורים לראות משהו בסגנון הזה:
PHP binary: /usr/bin/php
PHP version: 8.2.15
php.ini used: /etc/php/8.2/cli/php.ini
WP-CLI root dir: /home/user/.wp-cli
WP-CLI global config:
WP-CLI project config:
WP-CLI version: 2.12.0
ניתן להתקין WP-CLI גם בדרכים חלופיות:
- באמצעות Homebrew (macOS/Linux):
brew install wp-cli - באמצעות Composer:
composer global require wp-cli/wp-cli-bundle - באמצעות Docker: השתמשו בתמונת Docker הרשמית
wordpress:cli
בכדי לעדכן התקנת WP-CLI קיימת, פשוט הריצו:
wp cli updateפעולות נפוצות עם WP-CLI
מדריך זה מתמקד בפעולות מתקדמות יותר של WP-CLI, בכל אופן נתחיל במספר פעולות בסיסיות שניתן לבצע באמצעותו.
התקנת אתר וורדפרס
פקודה בסיסית של WP-CLI הינה core, אשר מספקת סט של כלים לניהול התקנות וורדפרס.
השלב הראשון ביצירת אתר וורדפרס חדש הינו להוריד את קבצי וורדפרס. גשו לתיקייה בה אתם מעוניינים להתקין את וורדפרס והריצו את הפקודה:
wp core downloadפקודה זו תוריד את הגירסה האחרונה של וורדפרס באנגלית (en_US). אם אתם מעוניינים להוריד גירסה או שפה אחרת, השתמשו בפרמטרים --version או --locale.
לדוגמא, בכדי להוריד את גירסת 6.7 בשפה העברית הריצו:
wp core download --version=6.7 --locale=he_ILלאחר שההורדה הסתיימה ניתן ליצור את קובץ wp-config.php באמצעות הפקודה core config:
wp core config --dbname=databasename --dbuser=databaseuser --dbpass=databasepassword --dbhost=localhost --dbprefix=prfx_הפקודה תשתמש בארגומנטים ותיצור קובץ wp-config.php. השלב הסופי הינו להתקין את וורדפרס באמצעות הפקודה core install:
wp core install --url=example.com --title="WordPress Website Title" --admin_user=admin_user --admin_password=admin_password --admin_email="admin@example.com"עדכון גירסת וורדפרס
אם גירסת הוורדפרס שברשותכם דורשת עדכון, השתמשו בפקודה wp core update ו wp core update-db על מנת לעדכן את קבצי המקור של וורדפרס ואת מסד הנתונים (במידה ומסד הנתונים צריך עדכון).
עדכון גירסת הוורדפרס שברשותכם, בדגש על עדכוני אבטחת וורדפרס חשובים במיוחד. בכדי לבצע עדכונים אלו בצורה מהירה השתמשו בפקודות core update ו core update-db:
wp core update
wp core update-dbאתם תמיד יכולים לבדוק את גירסת הוורדפרס הנוכחית שלכם על ידי wp core version:
wp core versionביצוע פעולות אלו משורת הפקודות אינה נראית יעילה יותר מאשר לבצע אותן ממשק הניהול במבט ראשון, אך אם אתם מנהלים מספר אתרי וורדפרס היא יכולה לחסוך לכם הרבה מאד זמן. אם אתם מעדיפים לבטל עדכונים אוטומטיים בוורדפרס ולבצע עדכונים ידנית, WP-CLI הוא הדרך הנקייה ביותר לכך. אתם יכולים ליצור סקריפט אשר יעדכן את כולם בפעולה אחת:
#!/bin/bash
declare -a sites=('/var/www/wp1' '/var/www/wp2' '/var/www/wp3')
for site in "${sites[@]}";
do
wp --path=$site core update
doneבכל מקרה, מומלץ ביותר לבצע גיבוי למסד הנתונים לפני עדכון כלשהו:
wp db export backup.sqlטיפ: החל מוורדפרס 6.6, WP-CLI כולל פקודה מובנית wp maintenance-mode המאפשרת להפעיל ולכבות מצב תחזוקה ישירות משורת הפקודות – שימושי במיוחד בזמן עדכונים ופריסות.
ניהול תוספים
באותה מידה, ניהול תוספים הינו פעולה של פקודה אחת. לדוגמא, wp plugin status יחזיר אינפורמציה על תוספים מותקנים והסטטוס שלהם – A = פעיל, I = לא פעיל ו UA = קיים עדכון לתוסף זה.
5 installed plugins:
UA smooth-scroll-up 0.8.9
I wordpress-beta-tester 1.0
A wordpress-importer 0.6.1
A wpcli-commands 1.0פקודות נוספות שניתן לבצע על תוספים הינם install, activate, deactivate, update, delete, search, וניתן להשתמש בהם בצורה הזו:
wp plugin install wordpress-importer --activate
wp plugin deactivate wordpress-importer
wp plugin delete wordpress-importer
wp plugin update --all
wp plugin search importניהול תבניות באמצעות WP-CLI
בגדול, אותן פקודות ניתנות לשימוש לניהול תבניות על ידי החלפת המילה plugin ב theme, כך שאין צורך להרחיב בנושא. עם זאת, פקודה אחת שיש לציין הינה scaffold, אשר יוצרת תבנית בת ריקה ומקצרת את התהליך:
wp scaffold child-theme my-child-theme --parent_theme=twentytwentyfive --theme_name='My Child Theme' --activateניהול משתמשים עם WP-CLI
ניהול משתמשים משורת הפקודות הוא אחד הפיצ'רים הפרקטיים ביותר של WP-CLI, במיוחד כשאתם נעולים מחוץ לממשק הניהול או צריכים לנהל חשבונות בכמות.
הצגת כל המשתמשים באתר:
wp user listיצירת מנהל חדש:
wp user create john john@example.com --role=administrator --user_pass=securepass123עדכון תפקיד או אימייל של משתמש קיים:
wp user update 2 --role=editor
wp user update 2 --user_email=new@example.comמחיקת משתמש והעברת התוכן שלו למשתמש אחר:
wp user delete 4 --reassign=1איפוס סיסמת מנהל
אחד התרחישים הנפוצים ביותר – שכחתם את סיסמת המנהל ואין לכם גישה ל-wp-admin. עם גישת SSH ו-WP-CLI, זה לוקח פקודה אחת:
wp user update 1 --user_pass=newpassword123אפשר גם לייצר סיסמה אקראית:
wp user reset-password 1פקודה זו שולחת מייל איפוס סיסמה לכתובת הרשומה של המשתמש.
מניפולציה על מידע בעזרת WP-CLI
חוץ מפקודות פשוטות כגון post create, post edit ו-post delete, סט הכלים של WP-CLI מספק כלים לניהול פוסטים.
אם אתם זקוקים ל-400 פוסטים בכדי לבדוק את הקוד בתוסף שלכם או את התבנית שיצרתם, אתם יכולים להשתמש בפקודה:
wp post generate --count=400ניתן גם לייצא את המידע ולייבא אותו מאתר וורדפרס אחר. בכדי לבצע זאת אתם צריכים להתקין את התוסף wordpress-importer:
wp plugin install wordpress-importer --activateכעת תוכלו להשתמש בפקודות export ו import בכדי להשלים את המלאכה:
wp export
wp import test.xml --authors=createניהול גירסאות פוסטים (post revisions)
כברירת מחדל, וורדפרס שומרת את כל הגירסאות של הפוסטים במסד הנתונים, מן ההכרח שבשלב מסויים יהיה הרבה מאד מידע בטבלת הפוסטים של מסד הנתונים.
בכדי לטפל בעניין זה ניתן להשתמש בהרחבה של WP-CLI אשר נקראית wp-revisions-cli ומאפשרת פונקציונליות לניהול גירסאות פוסטים. ניתן להתקין הרחבה זו כהתקנה של כל תוסף וורדפרס ובסיום תהיה לכם האפשרות להשתמש בפקודות כגון clean, list ו status.
ניהול מדיה עם WP-CLI
ממשק הניהול של וורדפרס אינו מאפשרת ניהול של תמונות בצורה נוחה ויעילה. WP-CLI מספקת כלים אשר יחסכו לכם לא מעט זמן בניהול המדיה של אתר הוורדפרס שלכם.
ייבוא תמונות
בעברי נתקלתי בסיטואציה בה לקוח סיפק לי מספר רב של תמונות וביקש כי אייבא אותם לאתר הוורדפרס שלו. לבצע זאת דרך ממשק הניהול זו פעולה מייגעת.
ניתן להשתמש בכלי ה-media של WP-CLI על מנת לבצע פעולה זו בפקודה אחת:
wp media import images_folder/*יצירה מחדש של תמונות
נדרש ליצור מחדש את ה thumbnails של התמונות ברגע שהגדרתם גודל תמונה חדש בתהליך הפיתוח. ניתן כמובן להשתמש בתוסף בכדי לבצע זו דוגמת regenerate-thumbnails אך בעזרת WP-CLI ניתן לבצע זאת בצורה מהירה ופשוטה ובפקודה אחת:
wp media regenerateישנם אינספור אפשרויות לפקודה זו מכיוון שאתם יכולים לחבר מספר פקודות ולבחור על אילו תמונות תתבצע הפעולה.
לדוגמא, בכדי לבצע את הפעולה על התמונות הראשיות של פוסטים בקטגוריה מסויימת, ניתן להשתמש בפקודה הבאה:
wp media regenerate $(wp eval 'foreach( get_posts(array("category" => 2,"fields" => "ids")) as $id ) { echo get_post_thumbnail_id($id). " "; }')פעולות על מסד הנתונים
כאשר מדברים על ניהול מתקדם של וורדפרס באמצעות שורת הפקודות, פעולות על מסד הנתונים תמיד נלקחות בחשבון. WP-CLI מספקת כלים למשימות אלו.
לדוגמא, ניתן לבצע query פשוט על ידי:
wp db query "SELECT id FROM wp_users;"
כמו כן, ניתן לבצע פעולות כגון ייבוא, ייצוא ואופטימיזציה למסד הנתונים על ידי הפקודות:
wp db export
wp db import backup.sql
wp db optimizeבפעולת הייצוא ניתן להשתמש גם בסקריפט או באמצעות cron job ולדאוג לכך שייתבצע גיבוי למסד הנתונים באופן אוטומטי ומתוזמן לבחירתכם.
חיפוש והחלפה (Search & Replace)
בניית אתר וורדפרס בסביבה לוקאלית או בסביבת פיתוח והעברתו לשרת אונליין כשסיימתם הינה פעולה אשר רבים מאיתנו ביצעו לא מעט. העתקת הקבצים וייבוא מסד הנתונים הם החלק הקל.
החלפה של הכתובות הישנות בכתובות החדשות במסד הנתונים לעומת זאת הינה פעולה טריקית מכיוון שכתובות אלו קיימות גם ב-serialized data, אשר חיפוש והחלפה רגיל לא יזהה.
WP-CLI עוזר לכם לבצע פעולה זו. הפקודה search-replace מחליפה את הכתובות הישנות בחדשות בכל השדות של מסד הנתונים כולל אלו המכילים serialized data.
wp search-replace 'dev.example.com' 'www.example.com'במידה ואתם מעוניינים לדעת את מספר הכתובות שהינכם מחפשים במסד הנתונים, ניתן להשתמש בפקודה הקודמת ולהוסיף את הפרמטר --dry-run:
wp search-replace --dry-run 'dev.example.com' 'www.example.com'
התוצאה תהיה משהו כזה:
+---------------------+-----------------------+--------------+------+
| Table | Column | Replacements | Type |
+---------------------+-----------------------+--------------+------+
| wpcli_options | option_value | 2 | PHP |
| wpcli_posts | post_content | 1 | SQL |
| wpcli_posts | guid | 28 | SQL |
+---------------------+-----------------------+--------------+------+קונפיגורציה ותחזוקה
WP-CLI יכול גם לערוך את wp-config.php בצורה בטוחה (ראו גם את המדריך שלנו על אופטימיזציה של wp-config.php) ולנהל cron jobs של וורדפרס – שתי משימות שמסורבלות דרך ממשק הניהול.
ניהול wp-config.php
קריאת ערך קונפיגורציה:
wp config get DB_HOSTהגדרה או עדכון של קבוע:
wp config set WP_DEBUG true --raw
wp config set WP_MEMORY_LIMIT '256M'הדגל --raw אומר ל-WP-CLI לכתוב את הערך ללא גרשיים, מה שנדרש עבור ערכים בוליאניים כמו true ו-false.
ניהול Cron Jobs
וורדפרס משתמשת במערכת cron משלה (WP-Cron) לתזמון משימות כמו פרסום פוסטים מתוזמנים ובדיקת עדכונים. WP-CLI מאפשר לכם לבדוק ולהפעיל אירועים אלו:
wp cron event listהפעלה ידנית של אירוע מתוזמן ספציפי:
wp cron event run wp_version_checkהפעלת כל אירועי ה-cron שהגיע זמנם:
wp cron event run --due-nowקונפיגורציית WP-CLI עם wp-cli.yml
אם אתם מוצאים את עצמכם מקלידים את אותם דגלים שוב ושוב, צרו קובץ wp-cli.yml בתיקיית הפרויקט כדי להגדיר ברירות מחדל:
path: /var/www/html
url: https://example.com
user: admin
@staging:
ssh: user@staging.example.com
path: /var/www/stagingעם aliases כמו @staging ניתן להריץ פקודות על שרתים מרוחקים ישירות:
wp @staging plugin update --allשאלות נפוצות
שאלות נפוצות על WP-CLI:
search-replace, db import או עדכונים מרובים. השתמשו בדגל --dry-run כשזמין בכדי לצפות בשינויים לפני ביצועם.wp cli update בכדי לעדכן לגרסה היציבה האחרונה. ניתן לבדוק את הגרסה הנוכחית עם wp cli version. אם התקנתם WP-CLI באמצעות Homebrew או Composer, השתמשו במנהל החבילות המתאים לעדכון.--path בכדי לכוון להתקנת וורדפרס ספציפית, או לכתוב סקריפט bash שעובר על מספר תיקיות אתרים. זהו אחד היתרונות הגדולים של WP-CLI עבור סוכנויות ומפתחים המנהלים אתרים רבים.לסיכום
אם קראתם מדריך זה לבטח קיבלתם מושג כללי על יכולות WP-CLI. כמובן שישנם עוד הרבה פקודות וכלים מובנים שאינם מוזכרים במדריך זה. ניתן לקרוא עוד ולקבל מידע נוסף באתר הרשמי.
מקווה שמדריך זה יעזור לכם לייעל את דרך העבודה שלכם (ושלי) בפעם הבאה שניגש ליצור אתר וורדפרס… בהצלחה ! 🙂


היי ,
רצית להתנסות בחומר שרשום כאן ועיניין אותי . רק אני לא מכיר כיצד והיכן פותחים שורת הפקודות. יש לי שרת לינוקס. מודה על עזרתך.
היי מיכאל,
אתה צריך לפתוח את Terminal, זוהי אפליקציה על המחשב שלך..
הממ… נתקעתי כבר בשלב השני
chmod +x wp-cli.phar
מקבל שגיאה כגון CMOD is not recognized as internal or extrenal command
לא ליד מחשב אבל אני מניח שהתכוונתי ל chmod, אתה יכול לוודא?