如何避免 git pull 產生不必要的 merge commit

之前跟別人協作的時候,使用 git pull 並 commit 後會產生額外的 merge 訊息。

這是因為其實 git pull 這個動作是包含了 git fetch 和 git merge

如果你不希望產生額外的 merge commit,可以透過 rebase 來處理

git pull --rebase origin main

上面的指令,其實結合了 git fetch 和 git rebase,會將我們 local 的 commit 放在遠端 commit 的前面

git fetch
git rebase origin main

參考資料

https://gitbook.tw/chapters/github/pull-from-github

https://coderwall.com/p/jgn6-q/git-pull-is-evil

https://dev.to/mliakos/don-t-git-pull-use-git-pull-rebase-instead-5b8k

VS Code Intelephense 無法辨識 WordPress 函式

PHP Intelephense 是 VS Code 中相當熱門的一個擴充,讓 VS Code 可以更接近 PHPStorm 具有 IDE (Integrated Development Environment) 的功能。

當在開發 WordPress 的時候,可能會遇到 VS Code 無法辨識 WordPress 函式的狀況。

你可以開啟設定,然然找到 Intelephense: Stubs 這個設定,將 WordPress 加入,重新啟動 VS Code 就可以了。

WordPress/WooCommerce 分類排序

WordPress 分類排序

方法1: 在 wp_terms 資料表新增一個欄位來記錄排序

這個外掛會新增一個 term_order 的欄位來記錄排序

這個外掛也是新增一個 term_order 的欄位來記錄排序

WooCommerce 商品分類排序

WooCommerce 商品分類排序
WooCommerce 可以透過拖曳的方式來改變分類排序

//woocommerce/includes/class-wc-ajax.php
term_ordering
wc_reorder_terms

//woocommerce/includes/wc-term-functions.php
wc_reorder_terms
wc_set_term_order
update_term_meta( $term_id, ‘order’, $index );

woocommerce 是用 order 這個 meta key 來記錄 term 的排序,記錄在 wp_termmeta 資料表

Elementor 收購 Strattic

Elementor 在 6/8 宣佈收購了同樣來自以色列的公司 Strattic。 Strattic 主要提供靜態化 (Static) 和 Headless WordPress 的主機服務。

這幾年在 WordPress 生態圈出現了許多收購,特別是由主機商的收購,各家主機商好像在搞軍備競賽似的,收購了許多大大小小的外掛,來加強自己在生態圈的優勢。例如 Godaddy、WPEngine、Liquidweb 皆收購了不少 WordPress 生態圈的外掛。而這次 Elementor 收購了 Strattic 則是相當有趣地由外掛方發起的收購,也因此引起了大家的好奇心和注意。

而事實上 Elementor 也在今年推出了自家的主機託管服務 Cloud Website,除了提供主機託管服務外,也內建了 Elementor Pro 外掛的授權。相信在未來 Elementor 和 Strattic 會有更多的整合,提供給使用 Elementor 架站的使用者更優質的託管服務和架站體驗。

參考資料:

plugin_loaded v.s plugins_loaded

WordPress 有兩個 action 可以在外掛啟用時執行,分別是 plugin_loadedplugins_loaded,差一個 s ,使用上可別搞錯了。

plugin_loaded

當某一個特定啟用的外掛載入時執行

使用方式:do_action( ‘plugin_loaded’, string $plugin )

plugins_loaded

當所有啟用的外掛載入時執行

使用方式:do_action( ‘plugins_loaded’ )

WooCommerce Order CRUD

$order->update_meta_data();
$order->save();

這邊的 update_meta_data,可能會有點誤解,實際上 update_meta_data 並沒有牽涉任何資料庫的操作,而是將 order 物件內的資料進行更新,最後還是要呼要 $order->save() 來將資料存到資料庫中

https://woocommerce.com/document/developing-using-woocommerce-crud-objects/

https://woocommerce.com/posts/extending-crud-data-stores/

Turbo Admin – 讓你快速切換後台畫面

如果你是 Mac 使用者可能對 Alfred 這款軟體不陌生,Alfred 是一款 Luncher 類的軟體,他讓你可以快速開啟你要的 App 或是執行指令。而 Turbo Admin 的功用,有點類似 Alfred,他讓你可以快速切換 WordPress 後台介面,過去筆者曾使用過類似的外掛,例如 Jarvis。不過 Turbo Admin 用起來體驗更好了。

安裝 Turbo Admin

安裝好之後,不需要特別設定,預設的快捷鍵如下:
  • Windows: Ctrl-Alt-Shift-P
  • Mac: Cmd-Alt-Shift-P

使用快捷鍵你就可以叫出下面的命令視窗,你可以輸入你要跳到的頁面或選單

修改快捷鍵與啟用其他功能

如果你不習慣預設的快捷鍵,你可以在 [使用者]->[個人資料] 中修改快捷鍵,但要注意不要和其他的瀏覽器快捷鍵衝突。在設定頁面中也有一些其他的功能,你可以嘗試看看。

搜尋文章內容

除了跳到特定選單或頁面外,Turbo Admin 也會搜尋文章內容,不過實際測試搜尋的結果並不是很準確,有機會再看看他是怎麼實作的。

Turbo Admin 瀏覽器外掛

Turbo Admin 的 WordPress 外掛提供了基本的搜尋功能,除此之外開發者也另外提供了瀏覽器擴充,包含了更多的進階功能,而且讓你可以不用安裝 WordPress 外掛,就可以使用 Turbo Admin 的功能,聽起來是不是有點神奇。

免費方案可以在 3 個網站上使用,如果你真的覺得這個瀏覽器擴充對你有幫助,可以用美金 35 元的價格購買授權,來解除三個網站的使用限制,這是一次性的費用,且可以啟用在 6 個瀏覽器上,應該是很夠用。不過日後如果有大幅更新的版本還是需要另外付費。