我如何返回我的定制函数的结果?

时间:2016-06-28 作者:PARVINDER

我使用以下源代码添加了一个额外的city 我的WordPress评论表单的字段:

<?php
/*
  Plugin Name: Comment meta data test
  Version: 1.0
  Plugin URI: http://wpengineer.com
  Description: Comment meta data test
  Author: Latz
  Author URI: http://wpengineer.com
 */

add_filter( \'comment_form_defaults\',    \'change_comment_form_defaults\');

function change_comment_form_defaults($default) {

    $commenter = wp_get_current_commenter();    

        $default[\'fields\'][\'email\'] .= \'<p class="comment-form-author">\' .
                        \'<label for="city">\'. __(\'CITY\') . \'</label>

                <input id="city" name="city" size="30" type="text" /></p>\';

    return $default;
}

add_filter( \'preprocess_comment\', \'verify_comment_meta_data\' );
function verify_comment_meta_data($commentdata) {
  if ( ! isset( $_POST[\'city\'] ) )
        wp_die( __(\'Error: please fill the required field (city).\') );
        return $commentdata;
}

add_action( \'comment_post\', \'save_comment_meta_data\' );
function save_comment_meta_data( $comment_id ) {
    add_comment_meta( $comment_id, \'city\', $_POST[\'city\'] );
}

add_filter( \'get_comment_author_link\',  \'attach_city_to_author\' );
function attach_city_to_author( $author ) {
  $city = get_comment_meta( get_comment_ID(), \'city\', true );
  if ( $city )
    $author .= " $city ";
    return $author;
}

?>
这将显示额外字段和注释表单,其输出将与注释作者姓名一起显示。

但是,我只想显示城市名称,不想显示作者名称。我该怎么做?

1 个回复
SO网友:Ismail

看起来很简单:

add_filter( \'get_comment_author_link\', \'attach_city_to_author\' );
function attach_city_to_author( $author ) {
    $city = get_comment_meta( get_comment_ID(), \'city\', true );
    if ( $city ) $author = $city;
    return $author;
}
除非您正在其他地方添加城市名称,并希望删除评论作者名称,否则请致电add_filter(\'get_comment_author\', \'__return_false\');

希望这有帮助。

相关推荐

为什么对COMMENTS_ARRAY挂钩所做的任何操作都被重置?

我正在写一个插件,允许简单的评论投票。我正在尝试按UPVOLUES的数量对评论进行排序。但是我在comments\\u array挂钩上所做的任何事情都会以某种方式重置。我的问题是在哪里,如何?这是我的代码:add_filter( \'comments_array\', \'biiird_order_comments_by_likes\' ); function biiird_order_comments_by_likes( $array ) { $arraya = $a