رفتن به مطلب
  • 0

اتصال به وردپرس


farsroom

سوال

سلام

چطوری میشه بیسیک را به وردپرس وصل کرد؟

کار با JSON رو بلدم ولی JSON ورد پرس یه چیز دیگه هست.

 

لینک مثال:

http://rayatechnic.ir/wp-json/wp/v2/posts

 

تصویر لینک بالا بصورت خروجی به شکل زیر هست.

اگه سورس بدید ممنون میشم.

rrrrrrr.jpg

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

3 پاسخ به این سوال تاکنون داده شده است

ارسال های توصیه شده

سلام 

از این لینک کمک بگیرید:

B4J - JSON Tree Example

البته جهت اتصال به وردپرس روش کار و توضيح مختصري درحدي كه بلدم خدمت دوستان عرض ميكنم  :

 

مثلا مسیر نصب وب سایت وردپرسی من این هست : Www.mysite/mywp/

1-نصب .فعال سازی پلاگین های مخصوص اینکار در وردپرس

Json Api

Json Api user

2- امنیت قسمت جیسون سایت در ابتدا :

الف ) واردتنظیمات قسمت json Api setting می شویم و همه گزینه ها به جز گزینه Core  را غیر فعال میکنیم تا امنیت وب سایت وردپرسیمان در حداکثر مقدار خود قرار بگیرد .

 *-  دریافت آزمایشی کدجیسون سایت (که دوست عزیز هم تا اینجا بلدبودندو کدجیسون رو می تونستندنمایش بدهند):

Www.mysite/mywp/?json = get_posts

 

ب ) رمز گذاری  قسمت کد json  که امکان استفاده دیگران از  جیسون سایت شما بسته بشود

(که این قسمت رمز گذاری را در اول کار خدمتتان عرض میکنم ولی شما این مرحله را موکول کنید بعداز اتمام نرم افزار انجام وسپس به نرم افزارتان اضافه نماییدتا دچارسردرگمی در دستورات نشوید!) :

وارد قسمت (ویرایش) پلاگین json Api  می شویم و فایل Api.php  رو  باز می کنیم :

*  زیر خط   if ($controller) {       دستورات زیر را  اضافه  می کنیم :  (رمز api  شما مثلا 1234 هست !)

   If ($_GET["API_KEY"] !="1234"){

$this->error("Your API Key Not Valid; ");

{

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

Www.mysite/mywp/?json = get_posts&API_KEY=1234

یا درمرورگر   اینو بنویسید:

Www.mysite/mywp/?json=1&API_KEY=1234

 

* خب حالا سایت وردپرسی ما جهت استفاده از جیسون اماده هست .

________________________________________________________

حالا برای بررسی وتجزیه وتحلیل جیسونی که سایت به ما میده رو میتونید از سایت  JSON Editor Online - view, edit and format JSON online  

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

*  برای دسترسی به دستورات دریافت انواع پست ها هم در سایت وردپرس هست و یک راه ساده تر اینه که وارد قسمت json Api setting در پنل تنظیمات وردپرس بشوید

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

 

 Core

غیرفعال کردن      

info get_recent_posts get_posts get_post get_page

get_date_posts get_category_posts get_tag_posts

 get_author_posts get_search_results get_date_index

get_category_indexget_tag_index get_author_index

 get_page_index get_nonce

مثلا كد زير پست با اي دي شماره يك را ميگيرد .

Www.mysite/api/get_post&id=1

 

------

 

یا به ادرس سايت پلاگین json Api برید یعنی این ادرس JSON API WordPress Plugins

نمونه مثال برای کارای مختلف هست :که مثلا میتونید با get_post پستها رو بگیرید بعدبا علامت &  مشخص کنیدبا دستور post_id=47مثلا پست با id  شماره 47 رو برای ما بگیردیا بادستور tag_slug=bananaپستهای با تگ banana رو مثلا بگیرد.

IMPLICIT MODE EXAMPLES:

EXPLICIT MODE EXAMPLES:

WITH USER-FRIENDLY PERMALINKS CONFIGURED:

SPECIFYING A CONTROLLER

There are a few ways of specifying a controller, depending on how you are calling the API:

____________________________________________________

 بعدش با دستور زير جيسون رو از بيسيك فور دريافت ميكنيد:

Dim job As HttpJob
job.Initialize("job",Me)
job.PostString("http://.......ir/mywp/?json=1","")

و بادستور زير جيسون رو گرفته داخل ليست ميريزيد وبا دستور get هر پارمتري از جيسون سايت كه بخواين ميتونيد دريافت كنيد :

(ضمنا اسامي دقيق پارامترها رو هم قبلا عرض كردم مي تونيد داخل سايت JSON Editor Online - view, edit and format JSON online مشاهده كنيد)

از count - posts-id-title-url-date-categories-title-tags-thumbnail_images-full-transpanel

 

Sub jobdone(job As HttpJob)
	If job.Success Then
		ProgressDialogHide
		Log("Success")
		Try
			json.Initialize(job1.GetString)
		Catch
			Log(LastException)
		End Try
		Dim m As Map
		m.Initialize
		m = json.NextObject
		Dim postcount As Int = m.Get("count")
'		Msgbox("تعداد پست ها برابر است با : "&postcount,"")
		Dim list2 As List
		list2.Initialize
		list2 = m.Get("posts")
For i = 0 To postcount - 1
			Dim p As Panel
			p.Initialize("")
			p.Color = Colors.Gray
			ScrollView1.Panel.AddView(p,2%x,top,96%x,58%y)
			top = top + 60%y
			Dim Post As Map
			Post.Initialize
			Post = list2.Get(i)
			Dim lblid As Label
			lblid.Initialize("")
			lblid.TextColor = Colors.Black
			lblid.Gravity = Gravity.RIGHT
			lblid.Text = Post.Get("id")
			p.AddView(lblid,10%x,2%y,40%x,8%y)
..............
.
.
.
.
 وهمينطور تا آخري
همين رويه رو ادامه بدين 
.
.
.
 مولتي پنل و اسكرول ويو و اتمام شرطها و... خودتون تكميل كنيد كه خودتون استادين ان شاء الله

 ------------------------

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

Dim job1 As HttpJob
job1.Initialize("job1",Me)
	job1.PostString("http://.ir/mywp/?p="&Main.st&"&json=1","")

Sub jobdone (job As HttpJob)
	If job.Success Then
		If job.JobName = "job1" Then
		top = 0
		ScrollView1.Panel.RemoveAllViews
		json.Initialize(job1.GetString)
		Dim json1,json2 As Map
		json1 = json.NextObject
		json2 = json1.Get("post")
		Dim img As ImageView
		img.Initialize("")
		ScrollView1.Panel.AddView(img,0,top,100%x,60%y)
		top = top + 62%y
		Dim pi As Picasso
		pi.Initialize
		Dim jsonimg As Map
		jsonimg.Initialize
		jsonimg = json2.Get("thumbnail_images")
		Dim jsonfull As Map
		jsonfull.Initialize
		jsonfull = jsonimg.Get("full")
		pi.LoadUrl(jsonfull.Get("url")).Resize(img.Width,img.Height).IntoImageView(img)
		Dim lbltitle As Label
		lbltitle.Initialize("")
		lbltitle.TextColor = Colors.Black
		lbltitle.TextSize = 18
		lbltitle.Gravity = Gravity.RIGHT
		lbltitle.Text = json2.Get("title")
		ScrollView1.panel.AddView(lbltitle,2%x,top,96%x,8%y)
		top = top + 9%y
		Dim li As List
		li.Initialize
			'Log(json2.Get("content"))
		li = tp.Initialize(json2.Get("content"),False)
و....
.
.
.
.
تا اخري

--------------------------

براي ثبت نام واتصال به جيسون پلاگين Json Api user هم اين دستور رو پست ميكينم 

	job1.PostString("http://.....ir/mywp/?json=get_nonce&controller=user&method=register","")

Sub jobdone(job As HttpJob)
	If job.Success Then
	If job.JobName = "job1" Then
		json1.Initialize(job1.GetString)
		Dim m As Map
		m.Initialize
		m = json1.NextObject
		nonce = m.Get("nonce")
		Dim stringutils As StringUtils
			job2.PostString("http://.......ir/mywp/?json=user/register&insecure=cool&username="&stringutils.EncodeUrl(EditText1.Text,"UTF8")&"&email="&stringutils.EncodeUrl(EditText3.Text,"UTF8")&"&nonce="&nonce&"&display_name="&stringutils.EncodeUrl(EditText2.Text,"UTF8")&"&password="&stringutils.EncodeUrl(EditText4.Text,"UTF8"),"")
	else if job.JobName = "job2" Then
		json2.Initialize(job2.GetString)
		Dim result As Map
		result.Initialize
		result = json2.NextObject
			If result.Get("status") = "ok" Then
				ProgressDialogHide
				Msgbox("ثبت نام شما موفق بود","")
			Else if result.Get("status") = "error" Then
				If result.Get("error") = "Username already exists." Then
					ProgressDialogHide
					Msgbox("این نام کاربری وجود دارد","")
				Else if result.Get("error") = "E-mail address is already in use." Then

 

 

 براي login وورود به قسمت كاربري هم ازفايل php زير استفاده ميشه 

<?php
include "wp-includes/pluggable.php";
include "wp-includes/class-phpass.php";

function LoginUser($username,$password){
    try{
		$connectionString = "mysql:host=localhost;dbname=hdlchief_wp2";
    	$dbo = new PDO($connectionString, "hdlchief_wp2", "3rk2093rk-wkofoqwkdqo-k3");
	} catch (Exception $e) {
   		echo "ERROR : ";
    	var_dump($e);
	}
try {
    $stmt = $dbo->query("SELECT * FROM wp_users WHERE user_login='$username'");
    $results = $stmt->fetchAll(PDO::FETCH_ASSOC);
    foreach ($results as $row) {
        $hash = $row['user_pass'];
        $wp_hasher = new PasswordHash(8, true);
    	$check = $wp_hasher->CheckPassword($password, $hash);
        if ($check == "1"){
            echo "Login True";
        }else{
            echo "Login False";
        }
    }
    $stmt->closeCursor();
} catch (Exception $e) {
    echo "ERROR : ";
    var_dump($e);
}
}

$username = $_POST['username'];
$password = $_POST['password'];
LoginUser($username,$password);

?>

و دستور زير پست ميشه : 

job1.PostString("http://....ir/mywp/mylogin.php","username="&EditText1.Text&"&password="&EditText2.Text)
	'-----------
Sub jobdone(job As HttpJob)
	If job.Success Then
		If job1.GetString = "Login True" Then
		'موفقیت در ورود 
......
.
.
.
الي اخر

وبراي جستجو هم از كدزير استفاده ميكنيد

job1.PostString("http://....ir/mywp/?json=get_search_results&search="&EditText1.Text,"")

Sub jobdone(job As HttpJob)
	If job.Success Then
		Try
			json.Initialize(job1.GetString)
		Catch
			Log(LastException)
		End Try
		Dim m As Map
		m.Initialize
		m = json.NextObject
		Dim list2 As List
		list2.Initialize
		list2 = m.Get("posts")
		Dim postcount As Int = m.Get("count")
		'		Msgbox("تعداد پست ها برابر است با : "&postcount,"")
		ScrollView1.Panel.RemoveAllViews
		If postcount = 0 Then
			Msgbox("نتیجه ای برای جست و جوی شما پیدا نشد","")
		Else
''پست موردنظر يافت شد 
.
.
.
جهت نمايش متن پست و ... از همون كدهاي نمايش در اولين قسمت دراينجا استفاده ميكينم.
.
.
.
الي اخر

-------

:cheshmak: البته برای راحتی کار در قسمت دستورات بیسیک مطابق جیسون سایتتان این سایت زیر کار رو راحتتر و مثل آب خوردن میکنه :

 

لینک سایت تبدیل جیسون به دستورات بیسیک فور اندروید

 

دراين پست سعي بر اين بود كه توضيح مختصر و به اصطلاح آموزش ماهيگيري بود . تو خود حدیث مفصل بخوان ازاین مجمل!

ضمنا استاد عزیز آقاي آرمين رمضاني يه سورس دراين زمينه بنام پيچ دوني هم ميفروشن كه دوستان علاقه مند ميتونن به ايشان مراجعه نمايند.

 

موفق باشيد

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

سلام

می تونید پلاگین JSON API  رو توی وردپرس نصب کنید و از داکیومنتی که توی نت هست برای کارتون  استفاده کنید.

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

سلام خوشگله هرچیزی رو میگن خالی بندیه و تجربه توش ندارن ! این صفحه رو ببین من متصل کردم ! به صورت ساده و از یه سری از کتابخونه های همین انجمن خریدم :gamer2: ریا نباشه

دوستان ویرایششون هم سریع انجام میدن حرفع تو همه چی دارن خداروشکر :gamer2::gamer2:

این صفحه رو ببین اتصال به وردپرس

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

لینک صفحه

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

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

مهمان
این موضوع برای عدم ارسال قفل گردیده است.
  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...