• اطلاعیه ها

    • 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  

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

سلام دوستان، راستش چند وقتیه دنبال اینم که یه API برای سایتم بسازم. یه حرکتایی زدم از روی چند تا مثال خارجی اما خروجی نهایی در حد انتشار عمومی یا توسعه دادنش در آینده نبود. به هر حال تلاشم رو کردم (هنوزم دارم تلاش میکنما ! <_< )

CMS سایتم وردپرس ئه و میخوام یک سری اطلاعات رو از دو جدول بیرون بکشم (جدول مطالب و جدول زمینه های دلخواه) اما از طرفی چون API مستقیما با دیتابیس اصلی سر و کار داره باید طوری باشه که مو لا درزش نره ! -_- و همچنین دارای کلید باشه API_KEY منظورمه :D خروجی اونم طبیعتا باید JSON و XML باشه.

مثالی، آموزشی، قطعه کدی، راهنمایی، هرچی. فقط بی زحمت لینک منابع خارجی ندین که بیزارم ! میخوام یکی قشنگ بشینه توضیح بده خارجکیم زیاد خوف نیست :P

0

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


لینک به پست

اول برو توی برگها یه پیج بساز مثلا آی دیش میشه 123 پس آدرسش فکر کنم بشه example.ir/index.php?page_id=123

(خیلی وقته وردپرس کار نکردم شرمنده ;) )

حالا برو توی قالب یه فایل بساز به اسم page-123.php

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

خروجی رو بکن آرایه مرحله آخر json_encode اش کن و یه die بذار آخرش .

برای ارسال پارامتر هم بصورت کوئری استرینگ عمل کن

example.ir/?page_id=123&api_key=reza&data=lastpost

مثلا

اگه پی اچ پی رو در حد متوسط بلد باشی نیم ساعته میسازیش در غیر اینصورت باید تلاش بیشتر کنی .

توی واکشی اطلاعات از دیتابیس داده ها رو escape کن

یادمه وردپرس از mysql استفاده میکرد امیدوارم این نسخه های جدیدش mysqli یا pdo باشه که در این صورت متد prepare رو داره از اون حتما استفاده کن .

دیگه بیشتر از این توضیح بخوای باید بشینم وردپرس نصب کنم و کد بنویسم برات :wub:

4

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


لینک به پست

اول برو توی برگها یه پیج بساز مثلا آی دیش میشه 123 پس آدرسش فکر کنم بشه example.ir/index.php?page_id=123

با این حساب اگه بخوام آدرس صفحه بشه example.ir/api.php?&api_key

باید توی htaccess یک سری تغییرات انجام بدم یا ادرس پیوند یکتای صفحه رو تغییر بدم ؟

بعد برای اینکه یه پنل عضویت بسازم که کاربرا عضو بشن کلید api بگیرن افزونه ی خاصی مد نظرته ؟

0

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


لینک به پست

اوکی. با این که آموزشای خارجی بهتر کمکتون میکنن، ولی خب من براتون چند تا مثال میارم.

برای ارتباط مستقیم و امن با دیتابیس وردپرس باید از $wpdb استفاده کنید. $wpdb یه کلاس هست که در هر جای پلاگین یا پوسته قابل استفاده هست و به شما امکان ارتباط مستقیم و امن رو با دیتابیس وردپرس میده. به علاوه خودش چندتا متغیر درمورد اسم جدول های مختلف داره. اما بهتون پیشنهاد میکنم که از متدهای خود وردپرس مثل get_post و get_post_meta استفاده کنید.

در مورد API Key شما میتونید از User Meta استفاده کنید، مثلاً برای هر یوزری یه کلید در نظر بگیرید و با اون احراز هویت کنید.

اما درمورد API اصلی. مثلاً شما دارید اینا رو توی یه پلاگین مینویسید:


function process_api() {
if ( $_REQUEST['api-action'] {
do_action( 'api_' . $_REQUEST['api-action'], $_REQUEST );
}

خب اگه با وردپرس آشنایی متوسطی داشته باشید، حتماً منظور از کدی رو که نوشتم متوجه میشید، این کد برای این هست که اگه از طریق GET یا POST درخواستی با نام api-action ارسال شد، اکشن های مربوط به درخواست رو انجام بده. مثلاً اگر ما درخواست create رو ارسال کردیم، کد اکشن (هُک) api_create رو اجرا کنه. حالا به فرض یوزر هم میتونه این طور درخواست بده:


http://wp/?api-action=create

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


// hamon kodi ke bala barat neveshtam ro bezar.

function api_getmeta( $posted ) {
// code ma injast
}

حالا فانکشن api_getmeta، درخواست های مثل اینو پردازش میکنه:


http://wp/?api-action=getmeta

اوکی؟ حالا ما نیاز به پست آی دی و نام متایی هم که یوزر میخواد داریم که از پارامتر $posted استفاده می‌کنیم که حالت آرایه داره.

حالا ما کدمون رو اینطور مینویسیم:


// dakhel function api_getmeta
$postID = $posted['id'];
$metakey = $posted['key'];
$restrict = array( 'restricted_meta' );

کدهای بالا رو داخل فانکشن api_getmeta بنویس. توضیح: $postID شماره پستی رو که کاربر میخواد متا رو بدت بیاره تعیین میکنه.

$metakey اسم اون متا هست که یوزره میخواد.

$restrict هم متاهایی هستن که نمیخوایم به یوزر بدیم، مثلاً ممکنه یه متا محرمانه باشه. در مثال من اسم متای محرمانه رو گذوشتم restricted_meta

اوکی؟

حالا ادامه کد، ما میخوایم بنویسیم که اگه اسم متا توی لیست سیاه نبود و متا هم موجود بود و خالی نبود، متا رو به یوزر به صورت json برگردونه.

این کدها رو ادامه بنویس:


if ( ! in_array( $metakey, $restrict ) AND false != ($value = get_post_meta( $postID, $metakey, true ) ) ) {
http_response_code( 200 );
echo json_encode( $value );
exit;
} else {
http_response_code( 403 );
echo json_encode( 'error' => false, 'reason' => 'nemishe!' );
exit;
}

به همین سادگی، به همین خوشمزگی. نمونه یه درخواست:


http://wp/?api-action=getmeta&id=1&metakey={meta key}

امیدوارم فهمیده باشی چی شد :D

3

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


لینک به پست

اگه توی api.php بخوای بنویسی خب کلا باید همه چیزو توش بنویسی دستکاری htaccess نکن همونی که گفتم انجام بده توی یه برگه بساز اسم برگه رو بذار مثلا api که بشه

example.ir/api?api_key=123

و ...

برای اینکه کلید بدی و مثلا محدودیت زمانی بذاری و اینا خب یه جدول بساز که توش سه فیلد api_key , start_time , end_time باشه

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

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

4

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


لینک به پست

خدا خیرتون بده

منم استفاده کردم.

0

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


لینک به پست

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

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

0

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


لینک به پست

به همین سادگی، به همین خوشمزگی. نمونه یه درخواست:


http://wp/?api-action=getmeta&id=1&metakey={meta key}

خب همونطور که از درخواست معلومه ای دی پست رو میده بعد متا کی ! مثلا میگیم پست 1 مقدار زمینه دلخواهی که اسمش translator ئه رو برگردون (اگه اشتباه میگم بگو :huh:)

حالا سوال من اینجاست برعکس همینم میتونه اتفاق بیوفته ؟ یعنی در دو مرحله کار انجام بشه اول کاربر مقدار یک زمینه دلخواه رو وارد میکنه فرض کن شناسه imdb رو وارد میکنه tt123456

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

0

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


لینک به پست

جالبه ولی من اگه جای شما باشم کلا بدون واسطه وردپرس میسازمش :)

ساخت یه سیستم ذخیره ، بازیابی زیر نویس ها به واسطه api به نظرم جالبتر باشه .

خود سایت خودت هم میتونه از این سرویس استفاده کنه دیگه

0

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


لینک به پست

جالبه ولی من اگه جای شما باشم کلا بدون واسطه وردپرس میسازمش :)

ساخت یه سیستم ذخیره ، بازیابی زیر نویس ها به واسطه api به نظرم جالبتر باشه .

خود سایت خودت هم میتونه از این سرویس استفاده کنه دیگه

دقیقا همین فکر رو دارم ! ولی subscene دیگه api ارائه نمیده. و فارسی سابتایتل هم میگه پهنای باند کافی واسه ارائه ی چنین سرویسی رو نداریم :( البته منابع دیگه ای هستن ولی زبان فارسی رو پشتیبانی نمیکنن ! در اصل ناشناخته هستن واسه کاربرای ایرانی :(

0

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


لینک به پست

خب همونطور که از درخواست معلومه ای دی پست رو میده بعد متا کی ! مثلا میگیم پست 1 مقدار زمینه دلخواهی که اسمش translator ئه رو برگردون (اگه اشتباه میگم بگو :huh:)

حالا سوال من اینجاست برعکس همینم میتونه اتفاق بیوفته ؟ یعنی در دو مرحله کار انجام بشه اول کاربر مقدار یک زمینه دلخواه رو وارد میکنه فرض کن شناسه imdb رو وارد میکنه tt123456

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

برات کدش رو نوشتم، اشکالات کد قبلی رو هم اصلاح کردم.


<?php
/*
Plugin Name: Simple API
*/

function process_api() {
if ( $_REQUEST['api-action'] )
do_action( 'api_' . $_REQUEST['api-action'], $_REQUEST );
}
add_action( 'init', 'process_api' );

function api_getmeta( $posted ) {
$postID = $posted['id'];
$metakey = $posted['key'];
$restrict = array( 'restricted_meta', 'other_restricted_meta' );

if ( ! in_array( $metakey, $restrict ) ) {
if ( false != ( $value = get_post_meta( $postID, $metakey, true ) ) ) {
http_response_code( 200 ); // Okay!
echo json_encode( $value ); // Don't forget this
exit; // This too
} else {
http_response_code( 404 ); // Not found!
$error = array(
'error' => true,
'code' => 404
);
echo json_encode( $error );
exit;
}
} else {
http_response_code( 403 ); // Forbidden
$error = array(
'error' => true,
'code' => 403
);
echo json_encode( $error );
exit;
}
}
add_action( 'api_getmeta', 'api_getmeta' );

function api_findbyimdb( $posted ) {
$imdb_id = $posted['imdb'];

$args = array(
'post_type' => '{your post type}',
'meta_key' => '{your imdb metakey}',
'meta_value' => $imdb_id
);
$query = new WP_Query( $args );

if ( $query->have_posts() ) {
$output = array();
while( $query->have_posts() ) : $query->the_post();
array_push( $output, get_the_ID() );
endwhile;

http_response_code( 200 ); // Okay!
echo json_encode( $output );
exit;
} else {
http_response_code( 404 ); // Not Found!
$error = array(
'error' => true,
'code' => 404
);
echo json_encode( $error );
exit;
}
}
add_action( 'api_findbyimdb', 'api_findbyimdb' );

حالا علاوه بر API قبلی، یه دونه دیگه هم داریم:


http://wp/?api-action=findbyimdb&imdb=???

فقط تو کدی که بهت دادم، به جای {your post type} اسم پست تایپت رو بنویس. به جای {your imdb metakey} هم اسم متایی که توش ذخیره میکنی رو بنویس.

حالا این ای پی آی findbyimdb توی پست هایی که آی دی imdb موردنظرت رو دارن میگرده و آی دی اون پست ها رو بر میگردونه.

2

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


لینک به پست

با افزونه json-api هم میتوانید وبسرویس ایجاد کنید

1

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


لینک به پست

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

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

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

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


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

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

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


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

  • مطالب مشابه

    • توسط sprants
      سلام
      دوستان عزیز من تمامی مراحل انتقال از لوکال رو انجام داده و سایت کامل بود و تغییرات مد نظرم رو هم انجام داده بودم اما بعد از چند روز ناگهان در صفحه اول پیام نصب اولیه ورد پرس اومد و انگار که از اول میخواین ورد پرس رو اینستال کنیم ! الان در ftp همه آپلود های قبلیم هست وحتی در phpmyadmin دیتابیس و همه اطلاعات وجود داره اما در ادمین ورد پرس انگار یه ورد پرس جدید نصب شده
      لطفا کمک کنید
      ممنونم
    • توسط mrasoul
      با عرض سلام و خسته نباشید ... لطفا این صفحه را ببینید :
      صفحه مورد نظر
      در این صفحه و بعد از ویدئو یک فهرست وجود دارد با آیتمهایی مثلا
      1.Introduction
      2.Brackets Extensions
      و ... که در اصل سرفصل های این آموزش است که شامل یکسری زیر مجموعه هستند ... وقتی روی زیرمجموعه ها کلیک می کنید اون مجموعه را نشان می دهید . به عنوان مثال روی
      1.2The Extension Manager
      کلیک کنید ...
      من اگر بخوام یک پست آموزشی کامل بسازم و تو این پست این سرفصل ها رو تعریف کنم آیا وردپرس امکانی رو داره بدون اینکه برای هر فصل یک پست ساخت همه ی پستها را داخل یک پست نوشت ؟ یعنی یک پست چند صفحه ایی مثلا مقدمه در خود پست و در مقدمه سرفصل ها رو تعریف کنیم حالا همون پست چند صفحه را زیرمجموعه داشته باشد که این صفحه ها همون سرفصل ها باشند .
      چون اگر قرار باشد برای هر فصل یک پست بفرستم طبیعتا کار بسیار مشکل و زمان بری است چرا که در هرکدام از این پستها باید با زمینه دلخواه سرفصل ها را تعریف کنم و هربار که پست جدید بفرستم در داخل بقیه سرفصل های قبل باید بروم و در زمینه دلخوه لینک این سرفصل جدید را تعریف کنم
       
    • توسط lloyd
      سلام دوستان خوبم اگر کسی میتواند پوسته The Voux را در هاست من نصب کند لطفا به من اینجا اطلاع بدهد. خطای نصب: شیوه نامه گم شده است !
       
    • توسط shayan201680
      با سلام
      بنده یک سایت اصلی وردپرسی دارم و قرار شده که در ساب دامینشم از وردپرس استفاده کنم.
      الان میخوام کاری کنم که کاربران اگر در سایت اصلی ثبت نام کردند بتونند با همون مشخصات در ساب دامین نیز لاگین کنند و برعکس!
      ولی نمیدونم باید چکار کنم! 
      ممنون میشم اگر کسی بلده راهنمایی کنه، با تشکر... 
    • توسط dastjerdisf
      با سلام
      در بین اساتید کسی می تونه به من کمک کنه بگه چرا وقتی آدرس سایتم رو می نویسم اتومات این متن رو به اون اضافه می کنه/?i=1
      از مدیریت هاست پرسیدم میگند از کش مرورگر هستش اما چرا سایت های دیگه این جوری نیستند
      آدرس سایتم:http://hushmandyar.ir