更改默认评论表单参数

时间:2013-11-24 作者:agis

我想更改默认的评论表单title\\u reply,label\\u submit。。。仅在我的CPT上,而不影响默认的注释表单,但我无法在不影响默认注释表单的情况下使其工作。

First 如果CPT和用户未登录,我不想输出注释表单,我正在使用以下代码执行此操作:

// Don\'t output the comment form if CPT and user isn\'t logged in
if ( \'myCPT\' != get_post_type() || is_user_logged_in() ) {
 comment_form(array(\'title_reply\'=>\'Got Something To Say:\'));
 }
这很好,但我还想检查CPT是否存在,如果我在该CPT内,则更改默认的注释表单。现在的问题是,我怎样才能把这些放在一起?

非常感谢。

2 个回复
最合适的回答,由SO网友:s_ha_dum 整理而成

你的逻辑是这样的:“如果帖子类型is not \'如果用户已登录,则使用comment_form“所以,除了myCPT 使用修改后的表单,任何登录的用户都会看到修改后的表单。

这听起来不像你对问题的描述:

我想更改默认的评论表单title\\u reply,label\\u submit。。。仅在我的CPT上,不影响默认的注释表单。。。

这听起来也不像您在注释中对代码应该做什么的描述:

如果CPT和用户未登录,则不要输出注释表单

对于应该发生的事情,至少有两种描述,而代码都没有——甚至都没有结束。

假设最简单的情况是您希望更改CPT注释表单的默认值,那么。。。

if ( \'myCPT\' == get_post_type()) {
  if (is_user_logged_in()) {
     comment_form(array(\'title_reply\'=>\'Got Something To Say:\'));
  }
} else {
  comment_form();
}

SO网友:Chip Bennett

您的问题是您的PHP条件。你说的是“如果是A或B,那就做点什么”,但那不是你真正想做的。

尝试直接操作arguments数组,然后将其传递给注释表单:

if ( is_user_logged_in() ) {

    $comment_form_args = array();

    if ( \'myCPT\' == get_post_type() ) {
        $comment_form_args[\'title_reply\'] = \'Got Something To Say:\';
    }

    comment_form( $comment_form_args );
}
如果不需要is_user_logged_in() 有条件,只需删除它:

$comment_form_args = array();

if ( \'myCPT\' == get_post_type() ) {
    $comment_form_args[\'title_reply\'] = \'Got Something To Say:\';
}

comment_form( $comment_form_args );

结束

相关推荐

除了使用wp_list_Comments之外,如何获取评论?

我想你们一定在想,“到底为什么?”基本上,这是因为它不适用于NextSCRIPTS从facebook获取评论的插件。当我在管理面板中时,我可以正确地看到评论,但在博客帖子上,它只是不断显示管理员而不是用户。这是在更新到3.6之后发生的,NextSCRIPTS告诉我他们知道这个问题,但已经一个月了,我们有8000多条评论,我想找到解决方法。所以说真的,你不需要我的任何代码,只要有人知道,你能分享一下如何在不使用wp\\u list\\u注释的情况下获取注释吗?必须有另一种方法。谢谢Matt