1. 程式人生 > >關於wordpress高級自定義插件遇到的問題。

關於wordpress高級自定義插件遇到的問題。

area cnblogs 電話 rdp 函數 pre 鏈接 數據 官方

Advanced Custom Fields是款非常強大實用的自定義字段插件,可以在文章、類別、標簽、頁面、自定義類型甚至用戶裏非常直觀地添加 Text、Textarea、Image、Checkbox、File、Select等自定義字段,還可以同時控制這些字段所顯示的位置以及一些判斷條件。此插件可以集成到其它插件或者主題中,Kissneck使用的主題就集成這插件,主要還是用於文本字段,文件,圖片,的存儲。使用起來相當的方便,這裏我貼上官方的鏈接https://www.advancedcustomfields.com/,大家有興趣的可以去看看。

開始使用的時候都是在後臺生成文章,生成項目需要的數據,對於客戶在頁面上的要求,比如,加個電話,加個圖片,使用acf自定義插件,很快就可以在後臺設置相應的功能。 後來,功能稍微復雜點的,比如,前臺直接發表的會用復雜的數據,需要用到repeat字段的功能的時候,就會出現這樣一個問題:新聞可以在頁面提交數據存到數據庫裏,後臺也可以看到新生成的一條數據。

像下面我截的圖,是一個repeat字段,用來設置圖片。但是這樣生成的一新聞,沒有在後臺點‘更新‘,不管你發表的是不是已經發布 ‘post_stauts’ => ‘publish‘,還是別的什麽狀態,在新聞的詳情頁,都是不會顯示該圖片的。詳情頁的調用是這樣的:$img = get_field(‘images‘ , $post->ID);

技術分享

對於這樣的問題有好幾種解決方法;可以在業務邏輯上增加一審核的過程,說白點就是要管理員在後臺更新這篇新聞,還有一種比較繁瑣用到wp的get_post_meta函數。在這裏我介紹下另外一種方法,特別好用,原理就是,在生成這個數據/新聞時在程序裏更新下這篇新聞,意思上差不多,也是在google上找到的。廢話不多說,直接上代碼。

技術分享

像這樣就可以自己在詳情頁調用get_field保證數據是正確的。

關於wordpress高級自定義插件遇到的問題。