web-dev-qa-db-ja.com

ソーシャルメディアへのリンク、Eメールなどの作者の詳細→これはメタなのか、それとも何か他のものなのか?

私の最初のWordPressテーマの作者セクションは現在HTMLでハードコーディングされています

ライブウェブサイト はこちら をご覧ください。

これ。

これらのソーシャルメディアアイコンおよびそれらに関連付けられたリンクは、デフォルトではバックエンド作成者ダッシュボードには表示されないため、コーディングする必要があります。 enter image description here

誰かが私に案内することができますか?

この機能もメタカテゴリになりますか?


サー、バックエンドの著者のダッシュボードに保存したソーシャルメディアのURLを実際に印刷するために、あなたが書いたコードのどの部分を使うのか、もう少し混乱があります。

私の質問を簡単にするために、フロントエンドに表示される私の著者のコードをここに入れています→

<div class="author-box">
    <div class="author-image">
        <img src="http://blog.blogeto.com/html/images/author_profile.png" alt="">
    </div>
    <div class="author-description">
        <h2>
            <!-- AUTHORS NAME --> <?php the_author(); ?>
            <!-- <a href="<?php get_author_posts_url(); ?>"><?php the_author() ?></a> -->
            <a href=""><i class="fa fa-home" aria-hidden="true"></i></a>
            <a href=""><i class="fa fa-home" aria-hidden="true"></i></a>
            <a href=""><i class="fa fa-facebook" aria-hidden="true"></i></a>
            <a href=""><i class="fa fa-Twitter" aria-hidden="true"></i></a>
            <a href=""><i class="fa fa-linkedin" aria-hidden="true"></i></a>
            <a href=""><i class="fa fa-youtube" aria-hidden="true"></i></a>
        </h2>
        <p> Lorem Ipsum is simply dummy text.<a href="#">Read More</a> </p>
    </div>
    <div class="author-category">
      <ul>
          <li><a href="">CATEGORY 1</a></li>
          <li><a href="">CATEGORY 2</a></li>
          <li><a href="">CATEGORY 3</a></li>
          <li><a href="">CATEGORY 4</a></li>
          <li><a href="">CATEGORY 5</a></li>
      </ul>
    </div>
</div>
1
The WP Novice

テーマのuser_contactmethodsfunctions.phpフィルタを使用するか、プラグインを介してユーザー連絡方法を追加します。

ユーザー連絡方法の項目は、wp_usermeta表に保管されています。 URLフィールドは特別です。 user_urlテーブルのwp_usersフィールドに格納されています。

// Add user contact methods
add_filter( 'user_contactmethods','wpse_user_contactmethods', 10, 1 );
function wpse_user_contactmethods( $contact_methods ) {
    $contact_methods['facebook'] = __( 'Facebook URL', 'text_domain'    );
    $contact_methods['Twitter']  = __( 'Twitter URL', 'text_domain' );
    $contact_methods['linkedin'] = __( 'LinkedIn URL', 'text_domain'    );
    $contact_methods['youtube']  = __( 'YouTube URL', 'text_domain' );

    return $contact_methods;
}

テンプレートファイルにリンクを出力します。

<div class="author-box">
    <div class="author-image">
        <img src="http://blog.blogeto.com/html/images/author_profile.png" alt="">
    </div>

    <div class="author-description">
        <h2>
        <!-- AUTHORS NAME --> <?php the_author(); ?>
        <!-- <a href="<?php echo get_author_posts_url( get_the_author_meta( 'ID' ) ); ?>"><?php the_author() ?></a> -->
            <?php 
                // Get the id of the post's author.
                $author_id = get_the_author_meta( 'ID' );

                // Get WP_User object for the author.
                $author_userdata = get_userdata( $author_id );

                // Get the author's website. It's stored in the wp_users table in the user_url field.
                $author_website = $author_userdata->data->user_url;

                // Get the rest of the author links. These are stored in the 
                // wp_usermeta table by the key assigned in wpse_user_contactmethods()
                $author_facebook = get_the_author_meta( 'facebook', $author_id );
                $author_Twitter  = get_the_author_meta( 'Twitter', $author_id  );
                $author_linkedin = get_the_author_meta( 'linkedin', $author_id );
                $author_youtube  = get_the_author_meta( 'youtube', $author_id  );

                // Output the user's social links if they have values.
                if ( $author_website ) {
                        printf( '<a href="%s"><i class="fa fa-home" aria-hidden="true"></i></a>',
                                esc_url( $author_website )
                        );
                }

                if ( $author_facebook ) {
                        printf( '<a href="%s"><i class="fa fa-facebook" aria-hidden="true"></i></a>',
                                esc_url( $author_facebook )
                        );
                }

                if ( $author_Twitter ) {
                        printf( '<a href="%s"><i class="fa fa-Twitter" aria-hidden="true"></i></a>',
                                esc_url( $author_Twitter )
                        );
                }

                if ( $author_linkedin ) {
                        printf( '<a href="%s"><i class="fa fa-linkedin" aria-hidden="true"></i></a>',
                                esc_url( $author_linkedin )
                        );
                }

                if ( $author_youtube ) {
                        printf( '<a href="%s"><i class="fa fa-youtube" aria-hidden="true"></i></a>',
                                esc_url( $author_youtube )
                        );
                }
            ?>
        </h2>
        <p> Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s.Lorem Ipsum is simply dummy text.   <a href="#">Read More</a> </p>
    </div>
    <div class="author-category">
        <ul>
                <li><a href="">CATEGORY 1</a></li>
                <li><a href="">CATEGORY 2</a></li>
                <li><a href="">CATEGORY 3</a></li>
                <li><a href="">CATEGORY 4</a></li>
                <li><a href="">CATEGORY 5</a></li>
        </ul>
    </div>
</div>
1
Dave Romsey

はい、これらのフィールドはユーザーメタになります。ユーザーのソーシャルリンクを保存するには、カスタムユーザーメタを追加する必要があります。

参照用の開発者向けドキュメントは次のとおりです。 https://developer.wordpress.org/plugins/users/working-with-user-metadata/

注:理解を深めるためにコード例を参照してください。

1