Tutoriale WP

Afișează informații despre autor: the_author_meta

wordpress-autor-meta-cover

Mai ales în cazul blogurilor cu mai mulți autori, sau la ziarele online, se practică afișarea autorului articolului curent, eventual și a altor date personalizate, cum ar fi adresele paginilor de socializare, de streaming, blogul personal și altele. Toate aceste date ce însoțesc autorul se introduc din editarea utilizatorilor.

În imaginea de mai jos este doar o parte din formularul de la editarea autorului:

Pentru afișarea acestor meta date se folosește metoda: get_the_author_meta() sau the_author_meta(). Detalii sunt oferite pe paginile lor.

1. Pe noi ne interesează cum am putea folosi aceaste metode în cadrul paginii, deci a buclei de interogare și nu în afara ei. Dacă se dorește aplicarea metodelor în afara buclei, trebuie specificat și id-ul paginii.

get_the_author_meta( 'nicename' );
get_the_author_meta( 'email' );
get_the_author_meta( 'url' );
get_the_author_meta( 'status' );

sau, specificând id-ul paginii:

$autor_id = get_the_author_meta( 'ID' );

get_the_author_meta( 'nicename', $autor_id );
get_the_author_meta( 'email', $autor_id );
get_the_author_meta( 'url', $autor_id );
get_the_author_meta( 'status', $autor_id );

2. În afara buclei, codul ar fi:

global $post;
$autor_id = $post->post_author;

get_the_author_meta( 'nicename', $autor_id );
get_the_author_meta( 'email', $autor_id );
get_the_author_meta( 'url', $autor_id );
get_the_author_meta( 'status', $autor_id );

Se obțin astfel informațiile despre autor.

Cum folosim aceste date?

Un cod complet de afișare a informațiilor de despre autor, mai jos:

<div class="author-content">

<h5><?php the_author_posts_link(); ?></h5>

  

<?php the_author_meta( 'description' ); ?>


  <?php if ( get_the_author_meta( 'user_url' ) ) : ?>
   <a rel="nofollow" target="_blank" class="author-social" href="<?php the_author_meta( 'user_url'); ?>"><?php penci_fawesome_icon('fas fa-globe'); ?></a>
  <?php endif; ?>
  <?php if ( get_the_author_meta( 'facebook' ) ) : ?>
   <a rel="nofollow" target="_blank" class="author-social" href="http://facebook.com/<?php echo esc_attr( the_author_meta( 'facebook' ) ); ?>"><?php penci_fawesome_icon('fab fa-facebook-f'); ?></a>
  <?php endif; ?>
  <?php if ( get_the_author_meta( 'twitter' ) ) : ?>
   <a rel="nofollow" target="_blank" class="author-social" href="http://twitter.com/<?php echo esc_attr( the_author_meta( 'twitter' ) ); ?>"><?php penci_fawesome_icon('fab fa-twitter'); ?></a>
  <?php endif; ?>
  <?php if ( get_the_author_meta( 'instagram' ) ) : ?>
   <a rel="nofollow" target="_blank" class="author-social" href="http://instagram.com/<?php echo esc_attr( the_author_meta( 'instagram' ) ); ?>"><?php penci_fawesome_icon('fab fa-instagram'); ?></a>
  <?php endif; ?>
  <?php if ( get_the_author_meta( 'pinterest' ) ) : ?>
   <a rel="nofollow" target="_blank" class="author-social" href="http://pinterest.com/<?php echo esc_attr( the_author_meta( 'pinterest' ) ); ?>"><?php penci_fawesome_icon('fab fa-pinterest'); ?></a>
  <?php endif; ?>
  <?php if ( get_the_author_meta( 'tumblr' ) ) : ?>
   <a rel="nofollow" target="_blank" class="author-social" href="http://<?php echo esc_attr( the_author_meta( 'tumblr' ) ); ?>.tumblr.com/"><?php penci_fawesome_icon('fab fa-tumblr'); ?></a>
  <?php endif; ?>
  <?php if ( get_the_author_meta( 'linkedin' ) ) : ?>
   <a rel="nofollow" target="_blank" class="author-social" href="<?php echo esc_url( the_author_meta( 'linkedin' ) ); ?>"><?php penci_fawesome_icon('fab fa-linkedin-in'); ?></a>
  <?php endif; ?>
  <?php if ( get_the_author_meta( 'soundcloud' ) ) : ?>
   <a rel="nofollow" target="_blank" class="author-social" href="<?php echo esc_url( the_author_meta( 'soundcloud' ) ); ?>"><?php penci_fawesome_icon('fab fa-soundcloud'); ?></a>
  <?php endif; ?>
  <?php if ( get_the_author_meta( 'youtube' ) ) : ?>
   <a rel="nofollow" target="_blank" class="author-social" href="<?php echo esc_url( the_author_meta( 'youtube' ) ); ?>"><?php penci_fawesome_icon('fab fa-youtube'); ?></a>
  <?php endif; ?>
  <?php if ( get_the_author_meta( 'email' ) && get_theme_mod( 'penci_post_author_email' ) ) : ?>
   <a rel="nofollow" class="author-social" href="mailto:<?php echo esc_attr( the_author_meta( 'email' ) ); ?>"><?php penci_fawesome_icon('fas fa-envelope'); ?></a>
  <?php endif; ?>
 </div>

Câteva detalii suplimentare

În exemplul de mai sus câmpul description, adică descrierea autorului, se va afișa fără spații între linii. Va curge textul unul după altul. Pentru a păstra spațierea între linii se poate folosi metoda:

În loc de:

<?php the_author_meta( 'description' ); ?>

punem:

<?php echo nl2br(get_the_author_meta('description')); ?>

Un alt exemplu, cum facem adresa de email să fie clicabilă:

<p>Trimite un email: 
    <a href="mailto:<?php echo get_the_author_meta( 'user_email' ); ?>">
        <?php the_author_meta( 'display_name' ); ?>
    </a>
</p>

Dacă folosiți metodele de mai sus în afara bculei, de ex. în fișierul functions.php ca parte a unei metode mai generale, atunci nu uitați să adăugați poarametrul ID.

Exit mobile version