Kayla
1
我正在为另一个自定义文章类型添加另一个 IF 部分,参考链接:https://meta.discourse.org/t/wp-discourse-advanced-custom-filter-for-discourse-publish-format-html/106059/12。这个自定义文章类型与我之前在主题 Filtering the available categories for a custom post type 中希望限制到特定 Discourse 主题并自动发布的类型相同。帖子已自动发布到正确的主题,但我尝试包含在 discourse_publish_format_html 中的自定义字段却显示为空。我已经反复检查了所有字段名称,但除了字段值本身之外,其他内容似乎都已成功传递到 Discourse。
好奇以下因素是否可能是原因?
- 自定义文章类型(CPT)是通过 Gravity Forms Advanced Post Creation Add-On 插件在 WordPress 中创建的。
- 自定义文章类型应用了 Toolset Access 权限,因此只有编辑者才能查看这些特定帖子;WordPress 状态为已发布。
- 自定义文章类型正被发布到一个私有的 Discourse 分类。
成功传递到 Discourse 的内容包括帖子/主题标题、{author} 和 {blogurl}。也许关键在于 {excerpt} 也返回空白,与自定义字段一样?
Kayla
2
更新:完全禁用 Toolset 访问权限和/或通过 WordPress(而非 Gravity Form)创建帖子并未解决自定义字段空白的问题。不过,{excerpt} 字段已开始正常显示。
Kayla
3
为明确起见,Toolset Access 似乎与 {excerpt} 的这一差异无关。
如果通过 WP 后台创建文章,{excerpt} 会正常显示(文章使用的是区块编辑器)。如果通过 Gravity Form 创建(该表单会创建一个“经典”区块来容纳 WYSIWYG 字段),则 {excerpt} 发布后为空白。
自定义字段(单行、多行和数字类型)无论通过何种方式创建文章,返回结果始终为空白。
simon
4
发布帖子后,您是否在编辑器右侧的 Discourse 侧边栏中看到类似以下的提示?
如果未显示“成功”消息,但帖子已发布,则问题出在自定义文章类型的配置上。
如果已显示“成功”消息,则自定义字段应作为帖子元数据可用,可通过 get_post_meta( $post_id, 'your_meta_key_name', true ); 获取。最简单的方法是编写代码,从您的 cosmos_custom_publish_format_html 函数中将调试信息写入 debug.log 文件。
我这周不在工作岗位,因此回复问题可能会比平时慢一些。
Kayla
5
我终于把问题缩小了:问题似乎出在自动发布选项上(这也是一个被忽略的新因素)。如果取消勾选此选项,先在 WordPress 上发布帖子,然后再发布到 Discourse,自定义字段就会正确同步到 Discourse 并正常显示。或者,如果允许自动发布,那么在 WordPress 中点击“更新 Discourse 主题”后,字段也会出现在 Discourse 中。因此,看起来当帖子自动发布时,它会在自定义字段中的数据尚未在 WordPress 中正确保存之前就被发布了。