Physical Address

304 North Cardinal St.
Dorchester Center, MA 02124

MW WP Form 無法正確載入

這次在幫客戶處理 MW WP Form 的時候,順手新增了一項小功能,未來如果要切換成新的表單時,可以省去重新更改範本檔的困擾。

但是在新增這項功能後,發現表單無法送出,而且當要回去填寫表單時,會再度出現錯誤訊息,無法重新填寫。原先應該呼叫出來的短代碼,也無法發揮作用。這時候只能用固定的方式 echo do_shortcode(‘[mwform_formkey key=”2292″]’); 直接啟用短代碼。

由於前一間製作公司的做法是將短代碼置入於文章編輯器中,並使用 the_content 帶出表單內容,但是後來我們將表單頁的內容改成使用自訂欄位的方式,帶入切好的樣板中。因此這次除錯便將表單的啟用方式改為 the_content。

結果在 Query Monitor 中出現了這樣的警告:

count(): Parameter must be an array or an object that implements Countable

上 Stack Overflow 搜尋了之後,發現問題可能出在沒有初始化 WordPress 的迴圈。檢查了一下範本檔,發現出問題的頁面真的沒有加上迴圈,重新帶入迴圈之後,問題似乎就解決了。至少目前本機沒有問題了。下次真的要注意。

<?php
while( have_posts() ) : the_post();
<article>
...
    $form = get_post_meta( get_the_ID() , '_reservation_id', true);
    echo do_shortcode( $form ); ?>
</article>
<?php endwhile; ?>

參考資料

Eric Chuang
Eric Chuang

正職是廣告行銷人員,因為 Google Tag Manager 的關係開始踏入網站製作的領域,進一步把 WordPress 當成 PHP + HTML + CSS + JavaScript 的學習教材。此外,因為工作的關係,曾經用 Automattic 的 Underscores (_s) 替客戶與公司官網進行全客製化佈景主題開發。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料