2014-03-31 41 views

回答

1

這是CiviCRM中的一個錯誤。您正在使用一個WordPress插件來處理每個頁面的內容,爲Facebook Open Graph創建標籤(以便在共享頁面時填充Facebook貼子上的圖片和圖片)。問題在於處理內容會觸發CiviCRM運行,因此它會打印頁面頭部的所有內容。

說明這一點更深入的問題是在這裏: https://issues.civicrm.org/jira/browse/CRM-14244

CiviCRM(4.4.5)的下一版本將包含此修復程序,但如果你有急事要發佈的頁面,這裏是你可以做什麼:

  1. 圍棋在您的網站的文件的wp-content /插件/ civicrm/civicrm.php

  2. 向下滾動到線412左右(取決於您的版本)並尋找線sa穎

    public function invoke() { 
    
  3. 在它下面添加以下行:

    if (!in_the_loop() && !is_admin() && empty($_REQUEST['snippet'])) { 
        return; 
    } 
    

    什麼,說是,如果你不顯示頁面的主要內容(運行「的循環」),顯示出管理員頁面,或顯示「片段」(屬於另一個頁面內的CiviCRM內容),則返回並不執行任何操作。當運行實際頁面內容時,CiviCRM將再次被調用。

僅供參考,拉入請求我在GitHub上做出處理,這是在https://github.com/civicrm/civicrm-wordpress/pull/36/files,在這裏你可以看到最終的結果。

如果您在CiviCRM 4.3是或更早,你要這些行添加到功能civicrm_wp_invoke,以下(或靠近行292)後,將它們插入:

function civicrm_wp_invoke() { 
+0

非常感謝安德魯,這工作完美!你搖滾我的朋友:) – joshmedeski

+0

沒問題!爲了幫助其他人找到這個,你可能想把答案標記爲「接受」: http://stackoverflow.com/help/someone-answers –

+0

你去了安德魯,我是新來的使用堆棧溢出(如果你可以不知道) – joshmedeski

1

該修復不完整,並打破鏈式加載CiviCRM中的AJAX查詢,例如如果在CiviProfiles中選擇一個國家,則檢索狀態下拉列表。實際的修補程序應該檢查這一點:

if (!in_the_loop() && !is_admin() && empty($_REQUEST['snippet']) && ($_REQUEST['q'] != "civicrm/ajax/jqState")) { 
    return; 
} 

注:這是尚未固定在4.4.5但加入上述行來的wp-content /插件/ civicrm/civicrm.php應該允許狀態選擇重新開始工作,否則你會注意到一個令人討厭的JavaScript錯誤,因爲返回的值是HTML,但ajax調用需要JSON。爲什麼在簡單的自動化測試中發佈這類錯誤之前沒有被捕獲和修復,直到今天我都不明白。