Support » Fixing WordPress » displaying author page without revealing userid

  • hello team
    can someone help me on this issue, anything that I post is showing my alias name but if you click on it, it will show the login username in the url example.com/author/username

    what I need is, it should be showing as example.com/author/nickname or example.com/author/user_nicename

    even I read at the below URL that I can even use twitter username, don’t know how to do it. Please help, much thanks in advance.

    https://codex.wordpress.org/Function_Reference/get_the_author_meta

      below is the content of Author_Templates
    /**
     * Retrieve the requested data of the author of the current post.
     * @link https://codex.wordpress.org/Template_Tags/the_author_meta
     * @since 2.8.0
     *
     * @global object $authordata The current author's DB object.
     *
     * @param string $field selects the field of the users record.
     * @param int $user_id Optional. User ID.
     * @return string The author's field from the current author's DB object.
     */
    
    function get_the_author_meta( $field = ' ', $user_id = false ) {
    	$original_user_id = $user_id;
      below if the content of meta-post.php used by Sahifa theme which called get_the_author_meta function
    <?php
    global $get_meta;
    if( ( tie_get_option( 'post_meta' ) && empty( $get_meta["tie_hide_meta"][0] ) ) || $get_meta["tie_hide_meta"][0] == 'no' ): ?>
    <p class="post-meta">
    <?php if( tie_get_option( 'post_author' ) ): ?>
    	<span class="post-meta-author"><i class="fa fa-user"></i><a href="<?php echo get_author_posts_url( get_the_author_meta( 'ID' ) )?>" title=""><?php echo get_the_author() ?> </a></span>
    <?php endif; ?>
    <?php if( tie_get_option( 'post_date' ) ): ?>
    	<?php tie_get_time() ?>
    <?php endif; ?>
    <?php if( tie_get_option( 'post_cats' ) ): ?>
    	<span class="post-cats"><i class="fa fa-folder"></i><?php printf('%1$s', get_the_category_list( ', ' ) ); ?></span>
    <?php endif; ?>
    <?php if( tie_get_option( 'post_comments' ) ): ?>
    	<span class="post-comments"><i class="fa fa-comments"></i><?php comments_popup_link( __ti( 'Leave a comment'  ), __ti( '1 Comment' ), __ti( '% Comments' ) ); ?></span>
    <?php endif; ?>
    <?php if( tie_get_option( 'post_views' ) ):
    	$text = __ti( 'Views' );
    	echo tie_views( $text ); ?>
    <?php endif; ?>
    </p>
    <div class="clear"></div>
    <?php endif; ?>
Viewing 2 replies - 1 through 2 (of 2 total)
  • Try this, I haven’t tested the code as a heads up, just reading the codex:

    Inside the loop, getting the id of the current author and saving to a variable to use later. This by itself will not display anything.

    $this_author = get_the_author_meta('nickname');

    Inside the loop, getting the id of the current author and immediately echoing

    the_author_meta('nickname');

    Anywhere, getting the id of a specific author and saving to a variable to use later. This by itself will not display anything.

    $this_author = get_the_author_meta('nickname', 1234);

    Anywhere, getting the id of a specific author and immediately echoing

    the_author_meta('nickname', 1234);

    Thing is, you referenced URLs, which should be permanent so I’m not exactly sure what you’re asking. The URLs should be unique, using a nickname instead of what’s actually in the URL (unless they happen to be the same) would break the URL. Maybe I misunderstand you, but here’s an article that might help: http://www.wpbeginner.com/plugins/how-to-change-author-url-slug-and-base-in-wordpress/

    Either way, I think you should try this code instead:
    Again, I haven’t tested this to see if it runs correctly so please double check.

    <?php
    global $get_meta;
    if( ( tie_get_option( 'post_meta' ) && empty( $get_meta["tie_hide_meta"][0] ) ) || $get_meta["tie_hide_meta"][0] == 'no' ): ?>
    <p class="post-meta">
    <?php if( tie_get_option( 'post_author' ) ): ?>
    	<span class="post-meta-author"><i class="fa fa-user"><?php the_author_link(); ?></span>
    <?php endif; ?>
    <?php if( tie_get_option( 'post_date' ) ): ?>
    	<?php tie_get_time() ?>
    <?php endif; ?>
    <?php if( tie_get_option( 'post_cats' ) ): ?>
    	<span class="post-cats"><i class="fa fa-folder"></i><?php printf('%1$s', get_the_category_list( ', ' ) ); ?></span>
    <?php endif; ?>
    <?php if( tie_get_option( 'post_comments' ) ): ?>
    	<span class="post-comments"><i class="fa fa-comments"></i><?php comments_popup_link( __ti( 'Leave a comment'  ), __ti( '1 Comment' ), __ti( '% Comments' ) ); ?></span>
    <?php endif; ?>
    <?php if( tie_get_option( 'post_views' ) ):
    	$text = __ti( 'Views' );
    	echo tie_views( $text ); ?>
    <?php endif; ?>
    </p>
    <div class="clear"></div>
    <?php endif; ?>

    By using the_author_link, you’ll pull the current author ID, wrap the author’s Display Publicly Name with an anchor that links to their URL. Your users can then go to their profile to choose which name to use (full name, first name, nickname, whatever) and this code will respect their decision.

    https://codex.wordpress.org/Function_Reference/the_author_link

    If you’re outside the loop, you may need to use get_the_author_meta.

    Hope this helps.

    I accidentally left an anchor tag surrounding <?php the_author_link(); ?>, I just edited my last post.

Viewing 2 replies - 1 through 2 (of 2 total)
  • The topic ‘displaying author page without revealing userid’ is closed to new replies.