如何在不编辑core的情况下更改core中指定的参数/文本?
例如,这是注释模板的一部分。wp中的php包含目录:
$fields = apply_filters( \'comment_form_default_fields\', $fields );
$defaults = array(
\'fields\' => $fields,
\'comment_field\' => sprintf(
\'<p class="comment-form-comment">%s %s</p>\',
sprintf(
\'<label for="comment">%s</label>\',
_x( \'Comment\', \'noun\' )
),
\'<textarea id="comment" name="comment" cols="45" rows="8" maxlength="65525" required="required"></textarea>\'
),
这是thingie的一部分,它显示注释表单并编写单词“
Comment“位于文本字段上方。
现在,如果我想换个词Comment 到Please leave a comment..., 我该怎么做?
我知道需要在函数中使用和放置某种挂钩。php文件,但我的知识到此为止,只需更改核心文件是一个很大的禁忌!
编辑:
在线2433(wp 5.4.2)
\'title_reply\' => __( \'Leave a Reply\' ),
我只是把它改成;
\'title_reply
\' => __( \'\' ),
我只是不想表现出来。。
第2441行
\'label_submit\' => __( \'Post Comment\' ),
将其更改为:
\'label_submit\' => __( \' Submit your thoughts...\' ),
最后(几乎),第2531行
echo apply_filters( \'comment_form_logged_in\', $args[\'logged_in_as\'], $commenter, $user_identity );
将其更改为
echo apply_filters( \'comment_form_logged_in\', \'\' );
也不想显示此。。
在线2420
sprintf(
\'<span id="email-notes">%s</span>\',
__( \'Your email address will not be published.\' )
),
我一点也不想让人看到这个。。
这就是我之前改变核心评论的方式。php文件。
如何在函数中执行此操作。php
(它将影响以下页面:https://rainbowpets.org/rasmus/ )
最合适的回答,由SO网友:Antti Koskinen 整理而成
如果您进一步向下滚动注释模板。php文件中,您会注意到可以使用的下一个可用过滤器是comment_form_defaults
. 使用此过滤器,您可以更改默认注释表单配置。
add_filter( \'comment_form_defaults\', \'filter_comment_form_defaults\' );
function filter_comment_form_defaults( $defaults ) {
$defaults[\'comment_field\'] = sprintf(
\'<p class="comment-form-comment">%s %s</p>\',
sprintf(
\'<label for="comment">%s</label>\',
_x( \'Please leave a comment...\', \'Comment field label\', \'textdomain\' )
),
\'<textarea id="comment" name="comment" cols="45" rows="8" maxlength="65525" required="required"></textarea>\'
);
return $defaults;
}
但是您的(父)主题也可能对字段进行一些修改,以便覆盖默认值。所以只要继续向下滚动,你最终就会看到
comment_form_fields
滤器这将过滤注释表单字段,包括textarea。
add_filter( \'comment_form_fields\', \'filter_comment_form_fields\' );
function filter_comment_form_fields( $fields ) {
$fields[\'comment\'] = sprintf(
\'<p class="comment-form-comment">%s %s</p>\',
sprintf(
\'<label for="comment">%s</label>\',
_x( \'Please leave a comment...\', \'Comment field label\', \'textdomain\' )
),
\'<textarea id="comment" name="comment" cols="45" rows="8" maxlength="65525" required="required"></textarea>\'
);
return $fields;
}
如果您只想以注释字段为目标,那么在前面的过滤器下面,您可以在foreach循环中看到
comment_form_field_comment
滤器
add_filter( \'comment_form_field_comment\', \'filter_comment_form_field_comment\' );
function filter_comment_form_field_comment( $field ) {
return sprintf(
\'<p class="comment-form-comment">%s %s</p>\',
sprintf(
\'<label for="comment">%s</label>\',
_x( \'Please leave a comment...\', \'Comment field label\', \'textdomain\' )
),
\'<textarea id="comment" name="comment" cols="45" rows="8" maxlength="65525" required="required"></textarea>\'
);
}
有关过滤器的更多详细信息,请参阅WP代码参考(链接)。