آموزش ایجاد صفحه پروفایل سفارشی برای کاربران وردپرس

آموزش ایجاد صفحه پروفایل سفارشی برای کاربران وردپرس

وقتی شما یک سایت با بیش از یک نویسنده داشته باشید, منطقی به نظر می رسد تا برای نویسندگان سایت خود یک پروفایل کاربری سفارشی ایجاد کنید. ایجاد صفحه پروفایل اختصاصی برای هر کاربر باعث می شود تا کاربران راحتر بتوانند پست های نویسنده مورد علاقه خود را دنبال کنند و اطلاعاتی مختصر در مورد آن نویسنده کسب نمایند.

در حالت پیشفرض وردپرس برای نمایش آرشیو یک نویسنده (مانند: name.com/author/mehdi) اگر فایل author.php موجود نباشد از فایل index.php یا archive.php استفاده می کند. اکثر قالب ها دارای فایل archive.php هستند اما متعسفانه بسیاری از قالب های رایگان موجود برای وردپرس دارای فایل author.php نیستند. اگر وردپرس از فایل archive.php برای نمایش پروفایل کاربران استفاده کند, مشکلی که وجود دارد این است که تنها کاربران می توانند آخرین نوشته های آن نویسنده را ببینید. در حالی که در یک پروفایل باید اطلاعات تماس با نویسنده به همراه توضیحاتی مختصر از وی وجود داشته باشد. پس در این آموزش می خواهیم نحوه ساخت فایل author.php و سفارشی سازی آن برای ایجاد پروفایل کاربران در وردپرس را به شما آموزش دهیم.

برای اولین قدم بهتر است فایل archive.php را کپی کنید و با نام author.php ذخیره نمایید. سپس تمام کدهای موجود در این فایل را با کدهای زیر جایگزین کنید و فایل author.php را مجددا ذخیره کنید.

<?php get_header(''); $curauth = (get_query_var('author_name')) ? get_user_by('slug', get_query_var('author_name')) : get_userdata(get_query_var('author')); ?>
<div class="author-profile-page">
<section id="author">
<header>
<figure><?php echo get_avatar( get_the_author_meta( 'ID' ), 88 ); ?></figure>
<article>
<h2><?php echo $curauth->display_name; ?></h2>
<p><?php echo $curauth->description; ?></p>
</article>
<div class="clear"></div>
</header>
<section>
<ul>
<li><a href="<?php echo $curauth->user_url; ?>" title="وبسایت نویسنده" target="_blank" rel="nofollow">وبسایت نویسنده</a></li>
<li><a class="email" href="mailto:<?php echo $curauth->email; ?>" title="mail" target="_blank">ایمیل نویسنده</a></li>  
</ul>    
</section>
</section>
<h2>پست های منتشر شده توسط <?php echo $curauth->display_name; ?></h2>
<ul>
<!– The Loop –>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<li>
<a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link: <?php the_title(); ?>">
<?php the_title(); ?></a>,
<?php the_time('d M Y'); ?> in <?php the_category('&');?>
</li>
<?php endwhile; else: ?>
<p><?php _e('No posts by this author.'); ?></p>
<?php endif; ?>
<!– End Loop –>
</ul>
</div>
<?php get_sidebar(); ?>
<?php get_footer(); ?> 

کد بالا در ابتدا آواتار نویسنده سپس نام و توضیحاتی در مورد او (اگر در شناسنامه خود وارد کرده باشد) را فراخوانی می کند. پس از آن هم ایمیل و آدرس وبسایت به همراه لیستی از آخرین پست های آن نویسنده را به نمایش در می آورد. برای نمایش اطلاعات بیشتر در مورد نویسندگان می توانید از توابع معرفی شده توسط وردپرس استفاده کنید ( مثل نمایش شناسه توییتر و فیسبوک نویسندگان وردپرس در پروفایل آنها) . تمامی این اطلاعات از شناسنامه کاربران در پنل مدیریت وردپرس دریافت می شود.

حالا که یک صفحه سفارشی برای پروفایل نویسندگان سایت وردپرسی خود ایجاد کردید, بهتر است مطمئن شوید که آیا صفحات سایت شما به پروفایل نویسندگان پست ها لینک داده شده است یا خیر. در اکثر قالب ها نام نویسنده به همراه لینک به پروفایل آنها نشان داده می شود. اما در برخی از قالب ها به دلیل عدم وجود فایل اختصاصی author.php طراحان قالب مجبور می شوند تا نام نویسنده رابه آدرس سایت وی لینک دهند. پس در فایل های قالب خود باید به دنبال بخش هایی که نام نویسنده قرار گرفته شده است بگردید.
بیشتر اوقات قبل از نام نویسنده عبارت, نوشته شده توسط (در قالب های انگلیسی Written by) یا عباراتی مثل این می آید. پس شما باید به دنبال چنین عباراتی بگردید. پس از اینکه این عبارت را پیدا کردید باید تابع فراخوانی نام نویسنده را با تابع زیر جایگزین کنید تا نام نویسنده به پروفایل وی لینک داده شود.

<?php the_author_posts_link(); ?>

روشی دیگر برای اینکه کاربران سایت خود را از وجود صفحه پروفایل نویسندگان آگاه کنید, لیست کردن تمامی نویسندگان در یک جای مشخص از قالب سایت می باشد. ما در مطلب قبلی روکش نحوه نمایش یک لیست کامل از نویسندگان با استفاده از کد و افزونه را منتشر کردیم. پس می توانید مطلب نمایش لیست کامل نویسندگان (کاربران) در وردپرس را مطالعه کنید.

دیدگاه کاربران

  1. […] فایل author.php در قالب سایت قرار دهید. حال می بایست طبق آموزش ایجاد صفحه پروفایل سفارشی برای کاربران وردپرس و همچنین مستندات وردپرس در مورد قالب نویسنده ها را […]

  2. سلام خیلی ازتون تشکر میکنم خیلی خوب بود
    فقط یه چیزی! اگر من با اون یکی آموزش تون چندتا کادر اضافه کنم اون وقت چجوری میتونم اون کادر ها رو هم نمایش بدم؟

  3. ali

    سلام و تشکر بابت سایت خوبتون
    ببخشید من میخوام بین کاربران سایت قابلیت ارسال و دریافت نامه به همدیگر رو اضافه یعنی جوری باشه که کاربران بتونن با هم صحبت کنند و همینطور من برای ثبت نام در سایت خودم به مشکل بر خوردم
    لطفا اگه میشه یه افزونه معرفی کنید که با هاش بشه پنل کاربری برای کاربر ها ایجاد کرد (مکانی برای ارسال نامه به یکدیگر . عضویت در انجمن ها . و ویرایش مشخصات خودشون از جمله آواتار و نام کاربری)

    • سعید شعبانی

      برای فعال کردن قابلیت ارسال پیام بین کاربرا می تونید از افزونه Private Messages For WordPress یا افزونه های مشابه به این استفاده کنید. برای پنل کاربری و ایجاد فروم هم دوتا افزونه خوب هستند یکی bbpress که برای ایجاد انجمن در وردپرس مناسب هست و یکی دیگه هم BuddyPress که برای ساخت شبکه اجتماعی با وردپرس مناسب هست.

      • ali

        واقعا ممنون مشکلم حل شد دستتون درد نکنه

      • parvan

        سلام من یه تازهکارم به معنای کلمه. خواستم از این افزونه استفاده کنم اما موقع فعال کردنش ازم نام میزبانو می خواد من چه چیزی رو باید وارد کنم.
        من یه افزونه می خوام که به وسیله اون بتونم به کاربرهام نوشته هایی رو بفرستم به صورت شخصی و یا فایل هایی رو براشون بفرستم. همین افزونه کارمو انجام میده درسته؟

  4. برای نمایش دادن کادر گوگل پلاس که خود وردپرس اضافه کرده باید چه کدی بزنم؟

  5. سلام ببخشید بازم مشکل دارم! دو تا مشکل!
    ۱) وقتی صفحه ی یک نویسنده باز میشه نوار مشکی بالای وردپرس نیست خودتون امتحان کنید:
    http://ask.pstuts.ir/author/avmohzsibak/
    البته هنوز استایل های این صفحه رو کامل نکردم یکم به هم ریخته س
    ۲) حتی وقتی کادرهای فیس بوک و توییتر و… خالی باشن بازم لینک ها رو نشون میده

  6. راستی سایت روکش هم یه مشکلی که داره اینه که نظرات رو هم به صورت کش ذخیره میکنه در نتیجه من هر وقت این صفحه رو باز میکنم باید Ctrl+F5 بزنم

  7. سلام یه پیشنهاد داشتم براتون.
    وقتی که یه کد توی سایتتون میذاریم کنارش اعداد خطوط نشون داده میشن. پیشنهاد میکنم با css این اعداد رو غیر قابل انتخاب کنید که وقتی داریم کد رو کپی میکنیم دیگه این اعداد کپی نشن.

  8. آقا سعید ببخشید من دوباره سوال دارم:
    من افزونه ی DW Q&A نصب کردم برای پرسش و پاسخ. حالا میخوام توی همین صفحه ی author.php تمام سوالاتی که کاربر پرسیده هم لیست بشن. چه کدی باید استفاده کنم؟ من با پشتیبانی شون تماس گرفتم نمیدونم طرف منو سرکار گذاشته یا یکم خرفت شده!! هر چی میگم من buddypress ندارم بازم بهم داره یه کدی میده که فقط برای buddypress کار میکنه. الآن بهم این کد رو داده میگم کار نمیکنه میگه کافیه توی صفحه ی کاربر در buddypress بذارید میگم ندارم من میخوام توی author.php بذارم میگه خب کافیه id کاربر رو بذارید توی کد! میگم چجوری؟ میگه با کد bp_displayed_user_id() 😐 😐 میگم آقا من buddypress ندارم میگه خب پس باید id کاربر رو به جاش بذارید 😐 میگم خب منم همینو میخوام چجوری باید بذارم؟ گفت خیلی راحته کافیه id کاربر مورد نظرتون رو بذارید به جای همین کد 😐 خلاصه سرتون رو درد نیارم دوربین مخفیه… به هر حال این کد رو داده که مشخصه که برای buddypress هست:

    $questions = get_posts( array(
     'posts_per_page' =&gt; -1,
     'author' =&gt; bp_displayed_user_id(),
     'post_type' =&gt; 'dwqa-question'
     ));
    

    حالا من چه کدی باید بذارم؟

    • سعید شعبانی

      فکر کنم این کدی که به شما داده همونطور هم که خودتون گفتید برای بادی پرس باشه. برای اینکه لیست پست های کاربرا را داخل صفحه پروفایل خودشون نشون بدید خیلی راحت می تونید از حلقه های وردپرس استفاده کنید.

      مثلا حلقه زیر لیست پست های کاربر را فراخوانی می کند

      <ul>
      <?php if(have_posts()): ?><?php while(have_posts()):the_post(); ?>
      <li>
      <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a>
      </li>
      <?php endwhile;endif; wp_reset_query(); ?>
      </ul>
      

      البته این فقط داخل فایل author.php به اون صورت که می خواهید کار می کنه.

      • سلام ممنون ولی با اینکار هیچ سوالی لیست نشد! چون سوال هایی که توسط افزونه ی مورد استفاده ی من (DW Q&A) ساخته میشن مثل نوشته های معمولی نیستن و توی قسمت نوشته ها وجود ندارند! وقتی میریم توی حالت ویرایش سوالات دقیقا مثلا ویرایش متن ها هست اما توی قسمت نوشته ها قرار نگرفتن! چکار میشه کرد؟

  9. راستی یه پیشنهاد هم دارم! یه زیر دامنه ی ask بسازید و یه قسمت پرسش و پاسخ برای سایتتون آماده کنید. اگر میخواید من افزونه ای که استفاده میکنم با فایل های ترجمه ای که آماده کردم رو براتون بفرستم

    • سعید شعبانی

      پیشنهاد خوبی هست, اما ایجاد یک بخش پرسش و پاسخ لازم به داشتن یک سری شرایط هست که فکر می کنم فعلا برای روکش زود هست. اما در آینده حتما یک بخش برای پاسخ به سوالات کاربران راه اندازی می شود. در مورد افزونه هم از اونجایی که شما زحمت فارسی سازی اون را کشیدید, به نظر من با نام خودتون در سایت روکش منتشر کنید تا کاربران دیگر هم ازش استفاده کنند.

  10. […] وحید محمدی عزیز در مطلب آموزش ایجاد صفحه پروفایل سفارشی برای کاربران وردپرس می خواستند تا با نحوه نمایش پست هایی که توسط کاربران در […]

  11. سامان

    آقای شعبانی من یک سوال دارم از شما و ممنون میشم بهم کمک کنید
    من یک تم وردپرس ایجاد کردم برای وب سایت خودم و میخوام کسای که عضو سایت من میشن بجای اینکه برن به بخش پیشخوان یک پروفایل تو همون تم سایت دیده بشه و به بخش پیشخوان نرن اصلا از افزونه های زیادی استفاده کردم همشون مشکل دارن.میشه کدی را معرفی کنید که تو خود تم بکار ببریم .و کسای که برای ثبت نام میان بعد ثبت نام برن به همون پرفایل که تو خود تم کار گذاشتیم و تو همونجا بتونن بهم پیام ارسال کنند و یا ویرایش پروفایل یا قابلیت ارسال مطلب بر روی سایت باشن و با تایید مدیر مطلبشون تو سایت نمایش داده بشه اومید وارم کمکم کنید و کد مربط را در اختیار من و دیگر دوستان قرار دهید.
    آدرس ایمیل من اینه :….

  12. سامان

    مرسی تست میکنم و نتیجه را به شما اطلاع میدهم
    ممنون که پاسخ دادید

  13. سلام خسته نباشی
    یه کد میخوام که کاربر وقتی لاگین کنه اطلاعات خودش رو در یک صففحه برای او نمایش داده بشه و این امر برای تمامی کاربران باشه

  14. محمد

    با سلام
    من قالبم author.php نداشت
    کد اول این پست رو در یک همچین فایلی با این اسم ذخیره و به قالب اضافه کردم ولی با زدن آدرس
    name.com/author/mehdi
    به صفحه ۴۰۴ هدایت شدم

    لطفا راهنمایی بفرمایید

  15. MONJE

    سلام آقا سعید
    استفاده از کد “” باعث میشه نام نویسنده به همراه یک لینک ایجاد بشه یعنی یه ساختار کامل تگ a ، اگه بخوایم فقط به لینک دسترسی داشته باشم و به صورت دستی لینک رو در بخش hraf تگ a قرار بدم باید از چه کدی استفاده کنم؟
    ممنون

  16. حسن

    دوست عزیز چطور می توانم id را داشته باشم
    مثلا من با نقش مدیر وارد سیستم می شوم یکسری اطلاعات را مشاهده نمایم
    البتهه منظورم این هست که با کد نویسی متوجه بشم کاربر مثلا مدیر وارد سایت شده و بعضی از قابلیت
    ها را بهش نشون بدو یا ندم
    و این سوال من سوای خود نقش هست

    لطفا جواب برام ایمیل کنید با تشکر

  17. سلام خسته نباشید

    من ساختم خیلی بحال شد.
    اینم عکسش
    http://8pic.ir/images/hak4gienuhzzm68jqxn8.png

    آقا مدیر ولی یه سوال داشتم چجور میشه تعداد پست هارو کم یا زیاد کرد؟
    مممنونم

  18. سعید جان خط آخر نظرات را ویرایش کن غلط املاییی…
    را داره می تونید از ظرط زیر سافتاده کنید.

  19. حامد

    سلام خسته نباشید
    من میخوام یک سایت آگهی طراحی کنم و میخوام که توی بخش کاربری که طراحی میکنم آگهی رو خود کاربر ایجاد کنه طوری که هر آگهی دسته بندی و تگ داشته باشه و به عنوان یک پست (مطلب) در نظر گرفته بشه و بتونم فیلدهای فرم رو هم در این پست ذخیره کنم طوری که بعدا بشه هر جور که خواستم اطلاعات رو واکشی کنم و کارهای مورد نظر رو روش اعمال کنم اگه امکان داره کد مثال رو برای راهنمایی بزارید ممنون میشم

  20. محسن

    سلام آقای شعبانی من قالب وردپرس طراحی میکنم اما موقع کدنویسی قالبم به وردپرس نمی تونم افزونه های جانبی که به قالبم اضافه میکنم رو در قسمت های محتلف قالبم فراخوانی کنم.آیا این افزونه ها توابع مخصوصی جهت فراخوانی در قالب دارند

  21. سلام من امروز صفحه ی یکی از کاربرهای سایتم رو باز کردم و متوجه شدم که اگر چه توی خود سایت، آواتار کاربرها نشون داده میشه اما توی این صفحه که توسط همین آموزش ساختم آواتار پیش فرض نشون داده میشه

  22. Hamidreza1381

    من هر کاری می کنم نمی شه لطفا کمک کنین :/

  23. Saeed_Sharifi

    درود بر شما ، سپاس از آموزشتون

    من یک صفحه پروفایل کاربری به نام author-page.php ساختم و کد هام رو توش ریختم ، چون باید ازش چند بار استفاده کنم ، خب تو هر برگه ای که می خوام از author-page استفاده کنم هم با تابع
    و هم با include برگم رو فراخوانی کردم ، ولی در کمال تعجب ، در برگه author.php خوانده میشود ولی در single.php خونده نشد ، چی کارش کنم ؟

کاربر گرامی برای ارسال دیدگاه اگر عضو روکش هستید باید سایت شوید در غیر اینصورت باید عضو شوید.