Skip to content

艾瑞克的沼澤 Posts

【第 13 天】自定義 WordPress 分類方法

在 WordPress 的世界中,我們可以註冊自定義分類法,分類的方法會被存儲在 term_taxonomy 資料表中。分類方法中有一些分類項目,這些項目則會被存儲在 wp_terms 資料表中。什麼意思呢?我們舉個例,名為 程式設計 的分類方法底下會有多個分類項目,例如說:PHP 和 Python ,大概就是這種關係。 所以接著,我們會來學習怎麼註冊一個自定義的分類方法,以及如何從我們的資料庫中去取得自定義的分類方法內容,然後顯示給用戶。 使用自定義分類法 自定義分類方法 WordPress 預設的分類方法有 分類目錄 和 標籤,在很多時候可能不能滿足我們的需求。所以這個時候,我們就會需要創建自定義分類方法。自定義分類方法通常和自定義文章類型一起使用,為我們自定義的某種內容按照我們自定義的條件分類。 為什麼使用自定義分類方法 有些人可能會好奇,我們什麼時候使用需要分類方法來組織我們在 WordPress 的內容? 假設有一個客戶是美髮店,他需要我們幫他使用 WordPress 創建一個網站,用來展示他的作品。 為了避免 作品集 這種類型的內容和其他內容混在一起,引起管理上的混亂,我們可能就會需要創建一個自定義文章類型來存儲這個設計師的作品。這時候,我們需要創建一個名為 髮型 的分類方法來把 長髮 和 中長髮 這兩種不同的髮型分開。獨立出來後,我們的自定義分類方法還可以在 WordPress 後台擁有自己獨立的選單,來方便我們去做管理,整個很方便! 課程分類方法 剛剛說了很多,所以接著我們就直接來實作看看 我們到寫文章的地方,可以看到預設有 分類 和 標籤 這兩種分類方法。 所以我們先來用 init action hook…

【第 12 天】自定義 WordPress 文章類型

我們有時候會想自己定義的文章的類型,所以接著,我們就來看看如何註冊自定義文章類型,以及如何從資料庫中取得自定義文章類型內容並且把這些內容顯示給使用者。 自定義文章類型 WordPress 預設有五種文章類型,分別是 post, page, attachment, revision 和 menu。我們有時候,可能需要創建自定義文章類型,比如說:購物網站的商品、遊戲網站的遊戲。 註冊自定義文章類型 因此,我們可以使用 register_post_type() 函式來註冊一個自定義的文章類型。註冊之後,WordPress 會自動幫我們添加一個新文章類型菜單到 wp_psots 資料表中,我們就可以通過這個分類來創建文章。下面做個簡單的示範: function eric_custom_post_type() { register_post_type( ‘eric_type’, [ ‘labels’ => [ ‘name’…

【第 11 天】如何管理 WordPress metadata

metadata 就是關於資料的資料。簡單來說就是我們創建了類型為商品的自定義文章類型,其中價格就是 metadata 的一種,這個字串就會被存儲在 postmeta 文章 metadata 中。 WordPress 的主要資料(文章、評論、用戶、分類)和他們 metadata 的關係是一對多,也就是一個主要資料可以有很多 metadata 。所以,我們可以在 metadata 中存儲很多附加資訊。 管理文章 metadata 新增 metadata 我們可以使用 add_post_meta() 函式添加 metadata ,該函式接受一個 post_id、一個 meta_key、一個…

【第 10 天】如何修改 WordPress 的後台設置選項

WordPress 為了使管理介面更容易被建立,並且確保安全和一致性 提供了兩個核心 API 給開發者使用,分別是設置 API 和選項 API。設置 API 被用來提供了一種創建選單和管理選單資料。選項 API 則是我們提供一種簡單的 key-value 方式來管理設置資料。 設置 API 為什麼使用設置 API WordPress 2.7 之後增加的設置 API 可以讓我們半自動地管理含有設置表單的後台頁面,讓我們自定義設置頁面。讓我們可以輕輕鬆鬆的開發設置頁面。也就是說,我們使用 API 生成介面的元素後,可以確保我們的自定義設置頁面和WordPress…

【第 09 天】WordPress 的 Shortcode

為了安全,在 WordPress 的世界中,是禁止在內容中運行 PHP 程式碼的,不過有時候我們還是希望說可以動態新增一些內容,所以在 WordPress 2.5 版中引入了 shortcode。 shortcode 是用讓我們在不插入 PHP 程式碼的情況下,動態新增內容的一段 code,對文章動態的新增相簿、播放影片、加入表單,或者實現更多自定義的功能。 WordPress 本身就內建了以下幾個 shortcode: caption – 為圖片或影片添加說明 gallery – 顯示相簿 audio –…

【第 08 天】WordPress 管理選單

好了,我們現在會新增一個外掛,也會對外掛做點事情了,但是總覺得還是少點什麼,是不是可以更好? 對了,就是少了一個管理選單!管理選單是 WordPress 後台左側顯示的後台管理功能選單,可以讓我們為外掛或是主題客製化一個設置選項頁面,像是這樣 選單在 WordPress 後台的左側顯示,可以在裡面塞進子選單。 第一層選單 接著,我們來看看如何添加一個選單到我們的 WordPress 後台。我們可以使用 add_menu_page() 函式來做新增。 <?php add_menu_page( string $page_title, string $menu_title, string $capability, string $menu_slug, callable $function = ”,…

【第 07 天】WordPress 如何 Debug?

前幾天,我們開始試著在 WordPress 埋了 hook ,用了自己的 hook ,也用了 WordPress 提供的幾個好用的 hook 。在這過程,應該有些人跟筆者有一樣的困擾,就是噴了狀態碼 500 ,也只能雙手一攤盲測(誤) 其實,WordPress 也有提供 debug mode 可以使用,接著就來講講 WordPress 提供的 debug mode。 開啟 WordPress Debug…

【第 06 天】WordPress 啟用、停用、刪除外掛

啟用、停用、刪除外掛?阿不就去 WordPress 後台的外掛列表,動動手指頭按下去就好了? 當然不是這樣了,不然我這是來搞笑的嗎? 今天要聊的是三個的 hooks!透過這三個 hook 可以在自己的外掛被啟用、停用或是刪除的這一瞬間,做點事情。 Set the activation hook for a plugin. 首先第一個是 register_activation_hook() ,官方的介紹是『Set the activation hook for a plugin.』,簡單來說就是設置外掛啟動時的 action hook。我們直接拿官方文件上的範例來看。 function…

【第 05 天】聊聊 WordPress 的 Filter Hooks

今天來介紹一下 Filter Hooks ,這是 WordPress 的另一種 hook,可以讓我們通過某個 Filter 鉤子上的呼叫函式來修改某些函式產生的數據。 如同昨天,在使用 filter hook 之前,我們來看看怎麼埋的。 WordPress 同樣的,提供了一個好用的函式讓我們可以埋 filter hook ,叫做 apply_filters()。 $c = apply_filters(‘do_something’,$a, $b); // 埋下一個名叫 do_something…

【第 04 天】Filter Hooks

今天來介紹一下 Filter Hooks ,這是 WordPress 的另一種 hook,可以讓我們通過某個 Filter 鉤子上的呼叫函式來修改某些函式產生的數據。 接著我們要來試看看 filter hook ! 我們可以通過兩個步驟新增一個函數到某個 filter  上面。 創建一個自己定義的回呼函式(Callback function) 使用 add_filter() 函式,把這個函式增加到對應的 filter上面 add_filter() 也一樣至少需要兩個參數,第一個是 hook…