Wordpress CiviRCM内容格式

时间:2014-03-31 18:53:53

标签: php wordpress civicrm

我试图弄清楚如何正确格式化以下网站的网页: http://marchofremembrancehouston.org/march/?page=CiviCRM&q=civicrm/event/register&reset=1&id=25

了解如何将CiviCRM数据推送到网站的右上角?我希望表单适合主题的内容区域。

我已经做了很多研究,似乎没有人给出明确的答案。

2 个答案:

答案 0 :(得分:1)

这是CiviCRM中的一个错误。您正在使用WordPress插件处理每个页面的内容,以便为Facebook Open Graph创建标签(以填充共享页面时Facebook帖子上的模糊和图像)。问题是处理内容会触发CiviCRM运行,因此,它会打印页面顶部的所有内容。

更深入地描述这个问题的问题在于: https://issues.civicrm.org/jira/browse/CRM-14244

CiviCRM的下一个版本(4.4.5)将包含修复,但如果您急于发布该页面,请执行以下操作:

  1. 将您网站的文件转到wp-content / plugins / civicrm / civicrm.php

  2. 向下滚动到第412行左右(取决于您的版本)并查找说明

    的行
    public function invoke() {
    
  3. 在其下方添加以下行:

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

    这就是说,如果您没有显示页面的主要内容(运行“The Loop”),显示管理页面或显示“片段”(属于另一页的CiviCRM内容),请转到回来什么都不做当运行实际页面内容时,将再次调用CiviCRM。

  4. 作为参考,我在GitHub中处理此事件的拉取请求位于https://github.com/civicrm/civicrm-wordpress/pull/36/files,您可以在其中查看最终结果。

    如果您使用的是CiviCRM 4.3或更早版本,则需要将这些行添加到civicrm_wp_invoke函数中,并在以下后面插入它们(在第292行或附近):

    function civicrm_wp_invoke() {
    

答案 1 :(得分:1)

此修复程序未完成,并在CiviCRM中断开链加载AJAX查询,例如用于检索状态下拉列表,如果在CiviProfiles中选择了一个国家/地区。实际修复应该检查:

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

注意:这是尚未在4.4.5中修复,但将上述行添加到wp-content / plugins / civicrm / civicrm.php应该允许状态选择再次开始工作,否则您还会注意到一个令人讨厌的JavaScript错误,因为返回的值是HTML,但是ajax调用需要JSON。为什么这种错误在发布之前没有被捕获并修复在一个简单的自动化测试中,直到今天我还不明白。