如何针对单个页面修改仅该页面的评论表单?

时间:2021-04-18 作者:Matthew Brown aka Lord Matt

如果我想全局更改主题的评论表单,我会使用add_filter “对于”;comment\\u form\\u default\\u字段;。那我可以用add_action “对于”;comment\\u form\\u logged\\u in\\u after“之后”;和;注释\\u form\\u在\\u字段之后;。然而,我想做的是创建一个带有自定义注释表单字段的页面。

我的第一个想法是在自定义页面模板中添加过滤器和使用挂钩。但这最多只适用于一个或两个站点。我希望找到的是另一种方法,我可以针对选定的页面。是否有一个钩子、过滤器或逻辑测试可以用于修改单个页面?

1 个回复
SO网友:Antti Koskinen

我想我应该使用自定义设置,用户可以使用该设置来选择一个页面(选择)或页面(复选框),其中会显示自定义注释字段。该设置应保存页面ID。

然后我将向template_redirect 操作,首先使用get_theme_mod() 然后将当前查询与保存的值进行比较。这可能是is_page() 如果用户只能选择一个页面,请选中,或者is_array() 检查get_queried_object_id() 值,如果允许用户选择多个页面,并且保存的值是一个数组或转换为一个数组。

如果通过了上述条件检查,则相应的操作和筛选器回调将应用于template_redirect 回调。

或者,如果要使用自定义页面模板而不是自定义设置,则可以使用is_page_template() 保持概念不变。

但使用customizer,您还可以提供选项供用户选择,如果需要,应在注释表单上显示哪些其他字段。每个自定义字段都应该有自己的;已启用“;在中检查并呈现回调template_redirect 回调。

P、 很抱歉没有添加代码示例。我在我的移动设备上输入这个,这样添加代码有点不方便

相关推荐

[Zapier+WP Webhooks Pro]:自定义字段在第一个逗号或分号处被截断

我在用Zapier和WP Webhooks Pro 将Google Sheet和WP连接到自动发布添加到电子表格的每一行的帖子。它的工作原理与预期一样,所有字段(包括自定义字段)都已正确填充,只有那些具有逗号和/或分号字符串的字段除外。那些被切断了。Setting up the custom field in ZapierSuccess output in Zapier after posting to WPCustom field in WP (cut off after semicolon)非常感谢您