未工作前的注释_备注

时间:2017-02-09 作者:M. Monica

在我的代码中,comment_notes_before 没有显示任何内容。

<?php
$args = array(
    \'class_form\'      => \'add_review\',
    \'label_submit\'      => __( \'Leave a review\' ),
    \'comment_notes_before\' => \'Before\',
    \'comment_field\' =>  \'<textarea id="review_text" name="comment" placeholder="Enter your review"></textarea>\',
    \'comment_notes_after\'  => \'After>\',
    \'logged_in_as\' => \'\'
);
comment_form($args);
我的代码有问题吗?

1 个回复
SO网友:Nathan Johnson

正如@birgire所指出的,参数前的注释\\u notes\\u仅显示给未登录的用户。如果你看看source, 有一个if构造,用于检查用户是否登录。如果他们已登录,则会启动筛选器和操作。如果没有,则在回显文本之前添加注释\\u notes\\u。

如果要向登录的用户显示before文本,可以使用其中一个挂钩并回显before内容。

<?php
$before = \'Before\';

//* Show $before only to logged in users
add_action( \'comment_form_logged_in_after\', \'wpse_106269_logged_in\', 10, 2 );
function wpse_106269_logged_in( $commenter, $user_identity ) {
  echo $before;
}

$args = array(
  \'class_form\'      => \'add_review\',
  \'label_submit\'      => __( \'Leave a review\' ),
  \'comment_notes_before\' => $before, //* Only shows for logged out users
  \'comment_field\' => 
    \'<textarea id="review_text" name="comment" placeholder="Enter your review"></textarea>\',
  \'comment_notes_after\'  => \'After\',
  \'logged_in_as\' => \'\'
);
comment_form($args);