progpars

plugin programming

32 پست در این موضوع قرار دارد

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 );

به اشتراک گذاری این پست


لینک به پست

نه متاسفانه جواب نداد

به اشتراک گذاری این پست


لینک به پست

داخل foreach باید باشه.

به اشتراک گذاری این پست


لینک به پست

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


$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 />

به اشتراک گذاری این پست


لینک به پست

foreach($queryusers as $record)
{
if($record->meta_key == 'description')
{
echo $record->meta_value;
}
}

به اشتراک گذاری این پست


لینک به پست

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

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

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

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

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

به اشتراک گذاری این پست


لینک به پست

تابع لیست کاربران get_users هست

به اشتراک گذاری این پست


لینک به پست

آقا پارسا 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 جواب میده ؟

به اشتراک گذاری این پست


لینک به پست

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

به اشتراک گذاری این پست


لینک به پست

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری