מרחשוון

להחליף תוכן של פוסט עם wp-cli

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

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

העלאת הקובץ לשרת

האתרים שלנו נמצאים במכולות, לכן העלאה עם SFTP לא התאימה לנו. במקום זה פתחתי טרמינל מקומי, עברתי לתיקייה עם קובץ ה-HTML, והרצתי פקודת kubectl cp. העתקתי מהמחשב המקומי שלי לתיקייה זמנית במכולה.

#copy file/folder from computer to pod:

kubectl cp <file/folder name> <namespace>/<pod name>:/path

הרצת הפקודה

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

ה-ID של הפוסט: wp-cli מאפשר אומנם להריץ דרכו שאילתת SQL, אבל אצלנו ה-SQL מותקן על מכונה אחרת כך שה-query לא עבד דרך wp-cli. ולכן השתמשתי ב-Heidi כדי להריץ את השאילתה ואז העתקתי את ה-ID לפקודה.

SELECT ID FROM wp_posts WHERE post_title='הצהרת נגישות' AND post_status='publish'

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

אחרי שהכנתי את הקרקע להרצת הפקודה, פתחתי טרמינל למכונה המתאימה ב-VSCODE: בתפריט בצדדי לחצתי על קורי העכביש, מתוך ה-clusters בחרתי את ה-cluster הנכון, ומתוכו בחרתי את ה-nodepool הנכון, ומתוכו את האתר הנכון. על שם האתר לחצתי עם עכבר ימני ובחרתי טרמינל.

נכנסתי לתיקייה של התקנת הוורדפרס, והרצתי את פקודת ה-update.

wp post update 4510 ../a11y_statement.txt --allow-root

הפרמטר --allow-root מאפשר להריץ את הפקודה בתור root

כתבו תגובה

כתובת הדוא"ל שלכם לא תוצג.