如何在Algolia Search页面结果的摘录中显示我的Wordpress自定义字段属性?

时间:2016-10-19 15:22:34

标签: javascript php wordpress customization algolia

我目前在Worpdress中使用Algolia的搜索插件。我设法将一些自定义字段及其值推送到Algolia中的自定义属性。现在,我尝试添加名为' program_description'的自定义属性。在我的搜索结果中。

默认情况下,搜索仅返回' post_title'的值。和'内容'属性。我有兴趣更换内容'使用我的自定义属性的输出属性输出(' program_description')。

我想我只需通过添加' program_description'来修改instantsearch.php模板。像这样的属性数组:

<div class="ais-hits--content">
    <h3 itemprop="name headline"><a href="{{ data.permalink }}" title="{{ data.post_title }}" itemprop="url">{{{ data._highlightResult.post_title.value }}}</a></h3>
    <div class="ais-hits--tags">
        <# for (var index in data.taxonomies.post_tag) { #>
        <span class="ais-hits--tag">{{{ data._highlightResult.taxonomies.post_tag[index].value }}}</span>
        <# } #>
    </div>
    <div class="excerpt">
        <p>
            <#
            var attributes = ['program_description', 'content', 'title6', 'title5', 'title4', 'title3', 'title2', 'title1'];
            var attribute_name;
            var relevant_content = '';
            for ( var index in attributes ) {
                attribute_name = attributes[ index ];
                if ( data._highlightResult[ attribute_name ].matchedWords.length > 0 ) {
                    relevant_content = data._snippetResult[ attribute_name ].value;
                }
            }

            relevant_content = data._snippetResult[ attributes[ 0 ] ].value;
            #>
            {{{ relevant_content }}}
        </p>
    </div>
</div>

这样做,我的结果都没有返回,并且我遇到了以下控制台错误: Uncaught TypeError: Cannot read property 'matchedWords' of undefined

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

Cannot read property 'matchedWords' of undefined告诉我,attributes的自定义参数可能未在Algolia的范围内定义。

我建议您使用自定义属性(或您将使用的任何属性)初始化attributesToIndex - 这样您就可以确保attributesToHighlight具有可以使用的定义。

查看此answer〜这可能有助于说明在尝试访问{{1} undefined成员时,您为自定义属性获取matchedWords定义的原因对象。