رفتن به مطلب

plugin programming


پست های پیشنهاد شده

s.jpg

سوالم به طور کلی در عکس مشخصه . میخوام آواتار کاربر رو از گراواتار بگیرم ... سرانجام :

اومدم کوئری یدونه گرفتم بعد get_avatar(get_the_author_meta('ID'), 50 ); رو بعد کوئری ریختم داخل متغیر بعد هم متغیر رو داخل حلقه به کار بردم که عکس پیش فرض رو برام چاپ کرد .

اما اگر بیام مستقیم تو پارامتر اول تابع get_avatar ایمیل بدم :


get_avatar('email@progpars.com', 50 );

گراواتار اون ایمیل رو چاپ میکنه در صورتی که همین ایمیل تو شناسنامه کاربر هست گراواتورشو چاپ نمیکنه !!!

لینک به ارسال


function latestmember()
{
global $wpdb,$wp_smallimg,$wp_uselargimg;
$queryusers = $wpdb->get_results("SELECT user_login,display_name,user_registered FROM wp_users");
$wp_smallimg = get_avatar('email@progpars.com', 50 );
$wp_largimg = get_avatar(get_the_author_meta('ID'), 150 );
$wp_uselargimg = '<img style="float: left; margin-right: 20px;" '.$wp_largimg.'>';
foreach($queryusers as $row)
{
echo
'
<div class="members">
<a class="tip_trigger">
'.$wp_smallimg.'
<span style="display: none; top: -7px; left: 719px;" class="tip">
'.$wp_uselargimg.'
<strong>شناسه : </strong>'.$row->user_login.'<br />
<br />
<strong>نام کامل : </strong>'.$row->display_name.'<br />
<br />
<strong>تاریخ عضویت : </strong>مهر 1391<br />
</span></a>
</div>
';
}
}
add_shortcode('latestmember','latestmember');
function latestmemberJs()
{
wp_deregister_script('jquery');
wp_register_script('jquery',plugins_url('/jquery-1.8.2.min.js', __FILE__));
wp_enqueue_script('jquery');
wp_register_script('latestmemberJs',plugins_url('/latestmember-js.js', __FILE__));
wp_enqueue_script('latestmemberJs');
}
add_action('wp_enqueue_scripts','latestmemberJs');
function latestmemberStyle()
{
echo '<link rel="stylesheet" href="'.plugins_url('latestmember-style.css',__FILE__).'" type="text/css" media="all" />';
}
add_action('wp_head','latestmemberStyle');
function admin_menu_latestmember()
{
add_options_page('تنظیمات آخرین کاربران عضو شده','آخرین کاربران عضو شده','manage_options','latestmember','admin_options_latestmember');
}
function admin_options_latestmember()
{
?>

<div class="wrap">
<?php screen_icon();?>
<h2>تنظیمات</h2>
<p>نمایش آخرین کاربران عضو شده در سایت</p>
<label>فعال / غیر فعال کردن افزونه</label>
<select>
<option>بله</option>
<option>خیر</option>
</select>
<?php submit_button( __('ذخیره'), 'primary', 'submit' ); ?>
</div>

<?php
}
add_action('admin_menu','admin_menu_latestmember');

فانکشن admin_options_latestmember همینجوریه و هنوز تکمیل نیست !

لینک به ارسال

به پارامتر اولش ؟

یعنی کوئری گرفتم بعد :


$wp_smallimg = get_avatar($row->user_email, 50 );

لینک به ارسال

فرقی نداره به اون صورت ولی چرا برای مهمان ها هم این لیست نشون داده میشه .

ببینید تو http://www.progpars.com/ لیست نویسندگان رو که ببینید یه همچین چیزی رو من میخوام به صورت پلاگین در بیارم (آخرین کاربران عضو شده) حالا برای آواتار کاربرا میخوام گراواتار رو بگیرم

لینک به ارسال

این رو تست کنید:

$userinfo   = get_userdatabylogin($row->user_login);
$user_email = $userinfo->user_email;
get_avatar($user_email, 50 );

لینک به ارسال

من الان میخوام زندگی نامه کاربر رو هم کوئری بگیرم و تو حلقه استفاده کنم اما باید از یک جدول دیگه استفاده کنم که کوئری من الان به این شکل شد :


$queryusers = $wpdb->get_results("SELECT wp_users.ID,wp_users.user_login,wp_users.display_name,wp_users.user_registered,wp_users.user_email,wp_usermeta.meta_key,wp_usermeta.meta_value FROM wp_users LEFT JOIN wp_usermeta ON wp_users.ID=wp_usermeta.user_id");

یه جا اشتباه کردم چون از هر یوزر چند تا چاپ میکنه !!

بعد بخوام از description که تو meta_key هست meta_value رو استفاده کنم به چه شکله ؟

لینک به ارسال

SELECT wp_users.ID,wp_users.user_login,wp_users.display_name,wp_users.user_registered,wp_users.user_email,wp_usermeta.meta_key,wp_usermeta.meta_value
FROM wp_users
LEFT JOIN
wp_usermeta
ON wp_users.ID=wp_usermeta.user_id
and wp_usermeta.meta_key='description'

لینک به ارسال

تو حلقه میخوام استفاده کنم ؟!


<strong>درباره من : </strong>'.$row->meta_key='description'.'<br />

لینک به ارسال

من فکر کردم این کوئری رو خودت نوشتی ، پیش خودم گفتم باریکلا چه پیشرفتی داشته . ;)

بهرحال اگه میخوای فقط description رو برگردونی از کوئری من استفاده کن که سریعتره چون واکشی کمتری داره اگه میخوای همه رو برگردونی توی حلقه کلید میشه meta_key مقدار هم میشه meta_value

لینک به ارسال

منظورتون از خودت نوشتی و پیشرفت ? :D چیز خاصی نبود که خودم ننویسم میشد با تابع خود وردپرس هم the_author_meta('description') بریزم تو یه متغیر و بعد تو حلقه استقاده کنم اما چون میخوام تو یه تولتیپ باشه و مشکل پیش اومد !

لینک به ارسال

یا شما خیلی نابغه ای یا فکر میکنی نابغه ای :)

از دستم ناراحت نشو

بهرحال مشکل حل شد ؟

لینک به ارسال

یا شما خیلی نابغه ای یا فکر میکنی نابغه ای

:)

از دستم ناراحت نشو

مرسی از اینکه پاسخ میدید من این مسائل تو وب واسم مهم نیست بخوام سرش ناراحت شم

بهرحال مشکل حل شد ؟

به خدمتتون عرض کنم که من بحثم روی کوئری گرفتنش نبود فقط استفادش تو حلقه بود به طور مثال :


<strong>نام کامل : </strong>'.$row->display_name.'<br />

نام چاپ میکنه

حالا میخوام درباره من رو همون زندگی نامه کاربر که تو شناسنامه هست رو بنویسم :


<strong>درباره من : </strong>'.inja.'<br />

لینک به ارسال

یک مسئله رو بگم. شما لقمه رو چند دور دور سرتون چرخوندید!

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

شما اومدید کوری زدید به دیتابیس که اصلا نیاز نبود.

همه اینها رو با توابع user وردپرس براحتی میتونستید اجرا کنید.

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

لینک به ارسال

بله مرسی http://codex.wordpress.org/Function_Reference/get_the_author_meta داشت اما روی کوئری هم یه جا اوکی شدم .

لینک به ارسال

آقا پارسا array چاپ میکنه با اون تابع اما به فانکشن من نگاه کنید الان :


function latestmember()
{
$userlogin = get_the_author_meta('user_login');
$displayname = get_the_author_meta('display_name');
$userregistered = get_the_author_meta('user_registered');
$user_description = get_the_author_meta('user_description');
$userinfo = get_userdatabylogin($row->user_login);$user_email = $userinfo->user_email;
$user_largimg = get_avatar($user_email, 150 );
$user_uselargimg = "<img style='float: left; margin-right: 20px;'$user_largimg ";
echo
'
<div class="members">
<a class="tip_trigger">
'.get_avatar($user_email, 50 ).'
<span style="display: none; top: -7px; left: 719px;" class="tip">
'.$user_uselargimg.'
<strong>شناسه : </strong>'.$userlogin.'<br />

<strong>نام کامل : </strong>'.$displayname.'<br />

<strong>تاریخ عضویت : </strong>'.$userregistered.'<br />

<strong>درباره من : </strong>'.$user_description.'<br />
</span></a>
</div>
';
}

توابع رو ریختم داخل متغیر سپس تو فرم html استفاده کردم و جواب داد

اما الان فقط باید loop بشه ! به نظر شما چون تو tip دارم استفاده میکنم مشکل بر نمیخورم !

خواستم متغیر ها رو بریزم داخل آرایه سپس فرم html رو توی یه حلقه استفاده کنم !

لینک به ارسال

خروجی تابع آرایه هست

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


<ul>
<?php
$blogusers = get_users('orderby=registered&order=DESC&number=10');
foreach ($blogusers as $user) {
echo '<li>' . $user->user_email . '</li>';
}
?>
</ul>

لینک به ارسال

برای description یوزرا هم get_usermeta استفاده کنم شبیه تابع get_users جواب میده ؟

لینک به ارسال

ما هرجا ای دی کاربر رو داشته باشید میتونید از متا استفاده کنید.

لینک به ارسال

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...