• اطلاعیه ها

    • Saeed Fard

      برگزاری میتاپ وردپرسی   14/08/96

      بعد از اولین دوره همایش وردپرس در ایران اگر پیگیر اخبار وردپرس بوده باشید، حتما خبر برگزاری چندین میتاپ و جلسه متعدد وردپرسی را شنیده‌اید، یکی از بحث‌های اصلی که محور اصلی این میتاپ‌ها بوده است برگزاری وردکمپ بود که به طور جدی دنبال می‌شود. این میتاپ‌ها و جلسات توسط جمعی از فعلان حوزه وردپرس در کنار وردپرس‌پارسی برگزار می‌شد و مسائل مربوط به این حیطه و از جمله وردکمپ مورد بحث قرار می‌گرفت. این بار با رایزنی‌هایی که با تیم اصلی وردپرس داشتیم در بخش دوم این رویدادها قصد داریم که میتاپ‌ها و جلسات وردپرسی را به صورت آزاد برگزار کنیم تا تمامی علاقه‌مندان و دوست‌داران وردپرس فرصت حضور داشته باشند و با گردهمایی، جامعه کاملتری از دوست داران وردپرس بسازیم و از تجربیات یکدیگر استفاده کنیم.   بدیهی است که این رویدادها با رویکرد مثبت در جهت سود رسانی به جامعه وردپرس و افراد حاضر در آن برگزار می‌شود و برای تمامی علاقه‌مندان به وردپرس است. پس اگر یک کاربر معمولی وردپرس یا یک توسعه دهنده هستید می‌توانید در این رویدادها شرکت کنید. ما در ملاقات‌هایمان از موارد مختلف و کاربردی وردپرس صحبت می‌کنیم و علاقمند به توسعه هر چه بیشتر وردپرس در ایران هستیم. ما وردپرس را دوست داریم. عضویت در این گروه برای همه افرادی که مایل به پیوستن هستند بدون در نظرگرفتن توانایی‌ها، مهارت‌ها، وضعیت مالی و یا معیارهای دیگر باز و رایگان است. فضای میتاپ‌ها و جلسات ما دوستانه و آزادنه و دور از هرگونه تبعیض و رفتارهای زننده است. بر این اساس از تمامی دوستانی که علاقه‌مند به شرکت در میتاپ‌های وردپرس هستند دعوت می‌شود تا از طریق لینک زیر در سایت میتاپ اقدام به ثبت‌نام کنند و منتظر خبرهای برگزاری جلسات در آینده باشند . لینک ثبت نام و عضویت : https://www.meetup.com/Iran-WordPress-Meetup    
    • Saeed Fard

      نسخه جدید وردپرس پارسی رونمایی شد   05/09/96

      در پنجمین سال فعالیت از وردپرس پارسی و بعد از ارائه خدمات و سرویس‌های متفاوت به جامعه وردپرس ، برآن شدیم که نسخه جدید سایت وردپرس‌پارسی را بر اساس نیازها و خدمات جدیدی که قرار است ارائه شود طراحی و رونمایی کنیم ، از این جهت امروز یک ورژن از نسخه جدید رونمایی شد. در ادامه به معرفی بخش‌های مختلف سایت می‌پردازیم.     در دوره فعالیت گروه وردپرس‌پارسی بیش از 13 افزونه مختلف به صورت رایگان از طرف گروه برای وردپرس نوشته و منتشر شد که در مجموع دارای 100هزار نصب فعال روی سایت‌های وردپرسی است و 500هزاربار از مخزن پلاگین‌های وردپرس دانلود شده‌اند. به همین دلیل قسمت اول وب‌سایت مختص معرفی افزونه‌های گروه وردپرس‌پارسی طراحی شده است که در آن لیستی کامل از افزونه‌ها به همراه توضیحات در اختیار کاربران است . روند تولید افزونه‌های رایگان در جهت توسعه و بومی‌سازی بیشتر وردپرس از طرف وردپرس پارسی ادامه دارد و بزودی افزونه‌های دیگری به آرشیو اضافه خواند شد.   گروه وردپرس‌پارسی که تا به این‌جا تمرکز بیشتر خود را روی پشتیبانی رایگان از وردپرس گذاشته بود تا مشکلات کاربران وردپرس فارسی را حل کند که حاصل این فعالیت 18 هزار کاربر در انجمن با 43 هزار موضوع و 255 هزار سوال جواب است، قرار است من بعد در عرصه آموزش وردپرس وارد شود و از تخصص اعزای گروه در این حوزه نیز استفاده کند تا مرجعی کامل، اصولی و درست برای آموزش وردپرس ایجاد شود. قسمت دوم وب‌سایت مربوط به مقالات و آموزش‌هایی است که روی وردپرس پارسی از طرف اعضای آن ارسال می‌شود.   در دنیای وردپرس اتفاقات مختلفی در حال روی دادن است که دانستن آن‌ها میتونه برای ما جالب و جذاب باشه، برگزاری وردکمپ‌ها، معرفی سرویس‌ها و خدمات جدید و ... که از جمله اخبار مهم در این حوزه می‌توان برگزاری اولین همایش وردپرس ایران در سال 93 و همایش‌های دیگر مربوط به وردپرس و معرفی سیاره وردپرس و همینطور خبر برگزاری میتاپ‌های وردپرسی در ایران اشاره کرد ، در قسمت آخر وب‌سایت به معرفی موارد این چنینی پرداخته می‌شود و همینطور گزارش‌های مرتب از فعالیت‌ها، میتاپ‌ها و رویدادهای وردپرسی در آن ارائه می‌شود .   در ادامه این فعالیت‌ها بزودی شاهد اخبار جدیدی از وردپرس‌پارسی خواهید بود. شما نیز به عنوان یکی از کاربران این جامعه وردپرسی می‌توانید ما را در توسعه هر چه بیشتر وردپرس یاری کنید. لینک مستقیم خبر : http://wp-parsi.com/wpparsi-new-version  
rasivell

محدوديت زماني براي اديت پست ها

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

/

سلام ،

من به دنبال روشي هستم كه بتونم مدت زمان اديت يه مقاله رو محدود كنم!

توجه كنيد: مقاله توسط نويسنده ما نوشته ميشه ، بعد ما منتشرش ميكنيم ، ايشون مثلا بعد دو هفته ميگه بزار رنگ فلان خطو عوض كنم و دوباره مياد اون مقاله رو اديت ميكنه و به روز رساني رو ميزنه و قبلا هم منتشر شده پس ديگه مستقيم رو سايته! و نظم سايت ما بهم ريخته

اگر بيايم اديت شدن پست هاي منتشر شده رو غير فعال كنيم ، بماند كه نويسنده ديگه قهر ميكنه!! ، بلكه مثلا اگر يه غلط املايي داشته باشه نميتونه دوباره بياد درستش كنه ! ولي اگه بيايم بگيم هر مقاله فقط تا 2 روز بعد انتشار اجازه اديت داشته باشه ، ايشون تو اون 2 روز مقاله اش رو چك كه كنه مشكلاتش رو هم حل ميكنه ديگه بعدها نميتونه مقاله رو اديت كنه و اينطوري مشكل ما حل شده

ما به دنبال روشي هستيم كه بگيم هر مطلب منتشر شده فقط تا مثلا 48 ساعت بعد انتشار ، توسط نويسنده مطلب قابل ويرايش باشه و بعد اين مدت زمان نشه ويرايش كرد

حالا افزونه - كد فانگشن قالب و يا روش ديگه اي داريد لطفا بفرماييد ولي مد نظرمون اينه كه يه كدي تو فانگشن قالب اضافه كنيم

متشكر كه زمان ميزاريد .......

0

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


لینک به پست

ارسال شده در (ویرایش شده)

آزمایش کنید در فانکشن:


function stoppostedition_filter( $capauser, $capask, $param){
global $wpdb;
$post = get_post( $param[2] );

if( $post->post_status == 'publish' ){
// غیر فعال کردن ویرایش پست برای نویسنده
if( $capauser['author'] == 1 ){
if( ( $param[0] == "edit_post") || ( $param[0] == "delete_post" ) ) {
//تعیین مقدار زمان پس از انتشار پست
$post_time_unix = strtotime( str_replace('-', ':', $post->post_date ) );
$current_time_unix = time();
$diff = $current_time_unix - $post_time_unix;
$hours_after_publication = floor( $diff / 60 / 60 );
// چنانچه 36 ساعت از زمان انتشار گذشته باشد امکان ویرایش و یا حذف پست نخواهد بود
if( $hours_after_publication >= 36 ){
foreach( (array) $capask as $capasuppr) {
if ( array_key_exists($capasuppr, $capauser) ) {
$capauser[$capasuppr] = 0;
}
}
}
}
}
}
return $capauser;
}
add_filter('user_has_cap', 'stoppostedition_filter', 100, 3 );

البته در اینجا یک مثال کامل آمده که می تونید بسته به نیازتون تغییرات ایجاد کنید:


http://codex.wordpress.org/Plugin_API/Filter_Reference/user_has_cap

ویرایش شده در توسط isk
4

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


لینک به پست

ارسال شده در (ویرایش شده)

متشكرم ، جواب داد

ولي كدي كه شما داديد 100 درصد مقابل اون لينكيه كه داديد! و من كارمو راه انداختم ولي متوجه اين كد نشدم و از نظر يادگيري دركش نميكنم! كد لينكيي كه داديد دست نويسنده رو باز ميكنه و كدي كه اينجا گذاشتيد دست نويسنده رو ميبنده و عملا نقطه مقابل هم هستن! لطفا اگر امكانش هست يكي از دوستان يه توضيح كامل از كدي كه اينجا قرار داده شده بگه كه متوجه عملكردش بشيم متشكرم..

پي نوشت: توي كد فوق ، ID نويسنده رو بايد وارد كنيم! حالا چطور ميتونيم بگيم مثلا هر كاربري با توانايي : نويسنده يا مدير و يا... بود اين دسترسي رو داشته باشه! منظورم اينه كه بجاي اي دي ، نام اون دسته كاربري رو بنويسم! مثلا : نويسنده يا مدير و يا....

ویرایش شده در توسط rasivell
0

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


لینک به پست

توی کد اول که آی دی نویسنده نیست. آی دی نوع کاربری هست.

الان برای نویسنده هاست.

3

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


لینک به پست

اها متشكر تازه متوجه شدم ، خب از كجا بدونم هر نوع نويسنده IDش چنده!؟

0

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


لینک به پست

در مدیریت کاربران

برروی ویرایش کلیک کنید

id در آدرس نمایش داده میشود

1

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


لینک به پست

سلام ،

من اين كد رو استفاده ميكنم ، هميني كه توي پست دوم داده شده. ولي يه موردي هست!!! و اونم اينه كه اين مال اديت پست ها نيست!! اين مال همه چيه! وقتي ساعتي رو كه تايين ميكنم ، ميگذره ، ديگه نويسنده هيچ كاري ازش بر نمياد نميتونه نظراتي كه بعد اون ساعت امده رو پاسخ بده ، و.... لطفا اين كد رو صحيحش رو بهم بديد كه فقط مال اديت و حذف پست باشه! و نه چيزاي ديگه!

0

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


لینک به پست

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

بعد از 1 روز


function restrict_editing_published_posts( $allcaps, $cap, $args ) {
// Bail out if we're not asking to edit a post ...
if( 'edit_post' != $args[0]
// ... or user is admin
|| !empty( $allcaps['manage_options'] )
// ... or user already cannot edit the post
|| empty( $allcaps['edit_posts'] ) )
return $allcaps;
// Load the post data:
$post = get_post( $args[2] );
// Bail out if the post isn't published:
if( 'publish' != $post->post_status )
return $allcaps;
//if post is older than a day ...
if( strtotime( $post->post_date ) < strtotime( '-1 day' ) ) {
//Then disallow editing.
$allcaps[$cap[0]] = FALSE;
}
return $allcaps;
}
add_filter( 'user_has_cap', 'restrict_editing_published_posts', 10, 3 );

3

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


لینک به پست

قبل از اينكه تستش كنم پارسا جان ، يه سوال:

اين محدوديتش در حد روزه ، كه من ميخوام در حد ساعتش كنم ، يعني ساعتي باشه مثلا بزنم 9 ساعت ، 3 ساعت و... نه روز

مورد بعدي اينكه تعداد نويسنده هامون زياده ، و هر كدام هم توانايي خاصي دارن كه بهترين راه براش اضافه كردن ID نويسنده است ، حالا كجاي اين كد بايد اي دي رو وارد كرد!؟

0

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


لینک به پست
3

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


لینک به پست

ارسال شده در (ویرایش شده)

متشكرم پارسا جان ولي من پروفايل نميخوام نشون بدم! فقط ميخوام بدونم چطور بايد به اين فانگشن بگم كه به كدام نويسنده ها محدوديت بده! هر نويسنده رو چطوري بفهمونم به اين فانگشن؟ اي ديشو بدم ، اسمشو بدم و.. مثلا كد اول منو ببين ، يه قسمت داره راحت اي دي نويسنده هايي كه ميخوام محدوديت اديت داشته باشن رو وارد كردم! ولي اين چي؟؟ اين از كجا ميدونه من دارم به كدوم نوينسده محدوديت ميدم!؟

و دوم اينكه ، پارسا جان اين كه با كدم من فرقي نداره ، اينم بعد اون زمان مشخص شده اجازه پاسخ دادن به نظرات رونميده!!! من براي همين گفتم كدم مشكل داره!!!

ویرایش شده در توسط rasivell
0

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


لینک به پست

کد دیگری من ندیدم

باید ببینید از چه هوکی استفاده میشه غیرفعال کنید

برای بدست آوردن شناسه کاربر میتوانید از تابع get_current_user_id‎ استفاده کنید

و براساس این شرط قرار دهید

3

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


لینک به پست

چرا پارسا جان ، البته حق ميدم سرتون شلوغه... عنوان تاپيك كه مشخصه ، و دقيقا دومين پست ، كد رو ميتونيد ببينيد. و در چهارمين پست هم ميتونيد ببينيد كه من به وضوح توضيح دادم كد رو دارم و داره كار ميكنه و فقط ديگه نويسنده ها نميتونن نظر بدن و دوباره كد رو نشون دادم!

با هوك ها و.... اشنايي ندارم و اصلا نميدونم چيه و بايد چيكار كنم! :wacko: نابع مذكور كه براي اي دي كاربرا بوده رو هم همينطور :unsure:

0

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


لینک به پست

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

عددهای 10 و 15 شناسه کاربر هست برای محدودیت

متغییر stf هم زمان محدودیت


function restrict_editing_published_posts( $allcaps, $cap, $args ) {
global $pagenow;
if(($pagenow != "edit.php" && $pagenow != "post.php") || (! in_array("edit_post",$args)))
return $allcaps;

$userid = get_current_user_id();
if($userid == 10)
$stf = '-5 day';
elseif($userid == 15)
$stf = '-1 hour';
else
return $allcaps;

//$allcaps[$cap[0]] = FALSE;
//return $allcaps;
/*
// Bail out if we're not asking to edit a post ...
if( 'edit_post' != $args[0]
// ... or user is admin
|| !empty( $allcaps['manage_options'] )
// ... or user already cannot edit the post
|| empty( $allcaps['edit_posts'] ) )
return $allcaps;
*/

// Load the post data:
$post = get_post( $args[2] );
// Bail out if the post isn't published:
if( 'publish' != $post->post_status )
return $allcaps;
//if post is older than a day ...
if( strtotime( $post->post_date ) < strtotime( $stf ) ) {
//Then disallow editing.
$allcaps[$cap[0]] = FALSE;
}
return $allcaps;
}
add_filter( 'user_has_cap', 'restrict_editing_published_posts', 10, 3 );

4

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


لینک به پست

خیلی کارت درسته پارسا جان ،‌مشکل من حل شد البته یه تغیر دادم چون تعداد مدیرا زیاد بود از Switch استفاده کردم بجای IF

0

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


لینک به پست

با تشکر از تمامی دوستان

برای اینکه نویسنده نتونه مطلب رو پاک کنه باید چه کار کرد؟ (یعنی بعد از مدت زمان مشخص شده که ویرایش غیر فعال میشه. پاک کردن هم غیر فعال بشه.)

البته با افزونه مدیریت کاربر میشه امکان پاک کردن مطلب رو از نویسنده گرفت، ولی توسط توابع چطور میشه؟

0

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


لینک به پست

این خط رو


if(($pagenow != "edit.php" && $pagenow != "post.php") || (! in_array("edit_post",$args)))

به


if(($pagenow != "edit.php" && $pagenow != "post.php") || (! in_array("delete_post",$args)))

تغییر دهید

2

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


لینک به پست

ممنون :wub:

خوب با اینکار محدودیت ادیت هم باقی می مونه یا...

برای اینکه هم محدودیت ادیت باشه هم محدودیت پاک کردن کد رو باید دوبار تکرار کرد یا اینکه ... :ph34r:

0

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


لینک به پست

شما شرط رو تغییر دهید


if(($pagenow != "edit.php" && $pagenow != "post.php") || (! in_array("delete_post",$args)) || (! in_array("edit_post",$args)))

http://www.php.net/manual/en/language.operators.logical.php

1

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


لینک به پست

ارسال شده در (ویرایش شده)

بازم ممنون از لطف و وقتت

این دوتا جداگانه کار می کنن:

این خط رو


if(($pagenow != "edit.php" && $pagenow != "post.php") || (! in_array("edit_post",$args)))

به


if(($pagenow != "edit.php" && $pagenow != "post.php") || (! in_array("delete_post",$args)))

تغییر دهید

ولی وقتی با هم یکیشون می کنی:

شما شرط رو تغییر دهید


if(($pagenow != "edit.php" && $pagenow != "post.php") || (! in_array("delete_post",$args)) || (! in_array("edit_post",$args)))

http://www.php.net/m...ors.logical.php

هیچ کدوم عمل نمی کنه!!!

شرط درسته ولی فکر کنم شاید چون هر دو ویژگی ویرایش و حذف از $args استفاده کردن به مشکل بر می خوره :wacko:

البته آیا شرط or برای اینجا درسته؟؟؟ چون ما می خواهیم هر دو ویژگی غیر فعال بشه!

سوال دیگه اونکه عدد 3 و 10 تو خط آخر برای چیه؟ لول یوز هاست؟

ویرایش شده در توسط montazer
0

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


لینک به پست

این حالت رو تست کنید


if(($pagenow != "edit.php" && $pagenow != "post.php") || (! (in_array("delete_post",$args) || in_array("edit_post",$args))))

اعداد مربوط به تابع add_filter هست

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

و

تعداد پارامتر تابع انتسابی هست

3

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


لینک به پست

اقا حل شد. کارت درسته :wub:

0

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


لینک به پست

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

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

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

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


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

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

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


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