חיפוש ]

ניהול מתקדם של וורדפרס באמצעות WP-CLI

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

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

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

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


התקנת WP-CLI

הערה: הצעדים הבאים דורשים עבודה בסביבת UNIX (macOS, Linux או FreeBSD). במידה ואתם משתמשים בווינדוס, הגישה המומלצת היא להשתמש ב-Windows Subsystem for Linux (WSL).

התקנת WP-CLI היא פשוטה. הרעיון הבסיסי הוא להוריד קובץ PHP ולשים אותו בספרייה בה הוא נגיש מכל מקום. ניתן להוריד את הסקריפט של 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.

לדוגמא, בכדי להוריד את גירסת 4.2.2 בשפה העברית הריצו:

wp core download --version=4.2.2 --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

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

#!/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=twentyfifteen --theme_name='My Child Theme' --author='Konstantinos Kouratoras' --author_uri=http://www.kouratoras.gr --theme_uri=http://wp.kouratoras.gr --activate

מניפולציה על מידע בעזרת 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-CLI באחסון שיתופי?
תלוי בספק האחסון. ספקי אחסון מנוהלים רבים כגון Kinsta, WP Engine ו-SiteGround מספקים גישת SSH עם WP-CLI מותקן מראש. באחסון שיתופי בסיסי, גישת SSH עשויה להיות מוגבלת או לא זמינה. בדקו עם ספק האחסון שלכם לגבי תמיכה ב-WP-CLI.
האם WP-CLI בטוח לשימוש באתר חי (Production)?
כן, WP-CLI בטוח לשימוש בסביבת Production ונמצא בשימוש נרחב בתהליכי עבודה מקצועיים. עם זאת, תמיד גבו את מסד הנתונים לפני הרצת פקודות הרסניות כגון search-replace, db import או עדכונים מרובים. השתמשו בדגל --dry-run כשזמין בכדי לצפות בשינויים לפני ביצועם.
כיצד מעדכנים את WP-CLI עצמו?
הריצו wp cli update בכדי לעדכן לגרסה היציבה האחרונה. ניתן לבדוק את הגרסה הנוכחית עם wp cli version. אם התקנתם WP-CLI באמצעות Homebrew או Composer, השתמשו במנהל החבילות המתאים לעדכון.
האם WP-CLI יכול לנהל מספר אתרי וורדפרס בו-זמנית?
כן. ניתן להשתמש בדגל --path בכדי לכוון להתקנת וורדפרס ספציפית, או לכתוב סקריפט bash שעובר על מספר תיקיות אתרים. זהו אחד היתרונות הגדולים של WP-CLI עבור סוכנויות ומפתחים המנהלים אתרים רבים.

לסיכום

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

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

(גילוי נאות – מאמר זה מסתמך על הפוסט הבא)

דיון ותגובות
4 תגובות  ]
  • מיכאל 28 ספטמבר 2015, 21:06

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

  • גיא 20 יוני 2019, 22:49

    הממ… נתקעתי כבר בשלב השני
    chmod +x wp-cli.phar
    מקבל שגיאה כגון CMOD is not recognized as internal or extrenal command

השאירו תגובה

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

Savvy WordPress Development official logo