Search

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

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

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

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


התקנת WP-CLI

הערה: הצעדים הבאים דורשים עבודה בסביבת (UNIX (OSx, Linux or FreeBSD , במידה ואתם משתמשים בווינדוס אתם צריכים כלי כגון Cygwin או מכונה וירטואלית.

התקנת 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: 5.5.24
php.ini used: /etc/php.ini
WP-CLI root dir:  phar://wp-cli.phar
WP-CLI global config: /Users/kouratoras/.wp-cli/config.yml
WP-CLI project config:  
WP-CLI version: 0.19.2

פעולות נפוצות עם 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

ניהול תוספים

באותה מידה, ניהול תוספים הינו פעולה של פקודה אחת. לדוגמא, 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. כמובן שישנם עוד הרבה פקודות וכלים מובנים שאינם מוזכרים במדריך זה. ניתן לקרוא עוד ולקבל מידע נוסף באתר הרשמי.

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

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

רועי יוסף
רועי יוסף

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

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

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

    • מנהל מערכת 29 ספטמבר 2015, 16:56

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

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

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

    • רועי יוסף 20 יוני 2019, 22:52

      לא ליד מחשב אבל אני מניח שהתכוונתי ל chmod, אתה יכול לוודא?

תגובה חדשה

ניווט מהיר

Up!
לבלוג