رفتن به مطلب

ایجاد یک فایل xml برای هر پست در وردپرس. امکان پذیره؟


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

سلام عرض شد

یه سوالی دارم اگه دوستان وردپرسی و برنامه نویس اطلاعی دارن لطفا همفکری کنند

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

مرحله اول تولید فایل xml برای هر پست هست.

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

لینک به ارسال

فایل xml که برالی هر پست ایجاد می شه ولی بصورت مجازی نه واقعی مثل خود پست که به صورت مجازی تولید می شه

سئوالتون رو اگه دقیق و واضح بپرسید شاید بشه بهش جواب داد

لینک به ارسال

سلام

محتویات فایل قراره چی باشه؟ چرا xml ؟

فایل xml قراره برای ذخیره و تبادل یه سری اطلاعات بین سایت و برنامه های تحت ویندوز استفاده بشه

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

http://wordpress.stackexchange.com/questions/6840/make-wordpress-generate-a-custom-xml-filenot-a-sitemap-that-is-updated-only-wh

************************

احتمال میدیم با این روش بتونیم کارمونو انجام بدیم.

اما اگه جواب نده باز باید دنبال روشهای دیگه باشم

فایل xml که برالی هر پست ایجاد می شه ولی بصورت مجازی نه واقعی مثل خود پست که به صورت مجازی تولید می شه

سئوالتون رو اگه دقیق و واضح بپرسید شاید بشه بهش جواب داد

در حالت عادی فایل xml ایجاد میشه ؟

طریقه فراخوانیش چطور هست ؟

لینک به ارسال

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


http://codex.wordpress.org/XML-RPC_Support

اگر می خواهید اطلاعات را بگیرید باید با این توابع کار کنید


http://codex.wordpress.org/XML-RPC_WordPress_API

و برای شخصی سازی خروجی


http://codex.wordpress.org/XML-RPC_Extending

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

معمولا اینجور کارها را با json انجام می دن

لینک به ارسال

ببینید

هدف من اینه که

فرض کنید یک نرم افزار یا بازی تحت ویندوز داریم که نسخه trial هست ( که با .NET نوشته شده. توی .NET توسط xml reader میشه فایل های xml رو باز کرد و چک کرد و پردازش کرد )

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

البته این متدی هست که برنامه نویس ویندوز ما پیشنهاد داده. من دقیقا نمیدونم که آیا با وردپرس چنین کاری قابل انجام هست یا خیر ؟!

لینک به ارسال

در چنین مواردی خودتون باید یه سیستم براش بنویسید و وردپرس توصیه نمیشه

لینک به ارسال

مرحله اولیه رو با همون لینکی که توی پست 4 داده بودم تونستم اجرا کنم

فعلا سوال دیگه ای نیست

با تشکر

لینک به ارسال

استاد فخار یه سوال دارم

ببینید یه حلقه داریم به این صورت :


for($i=0; $i<count($post_array); $i++){

$post_title = $post_array[$i]->post_title;
$post_date = $post_array[$i]->post_date;
$post_link = $post_array[$i]->guid;
$post_name = $post_array[$i]->post_name;
$post_id = $post_array[$i]->ID;
$post_permalink = "?p=" . $post_id;

$post_en = $post_array[$i]-> echo . $post_enname .
$content .= "<post>
<title>$post_title</title>
<date>$post_date</date>
<link>$post_link</link>
<enname>$post_en</enname>
</post>" . PHP_EOL;

}

میخوام خط <enname>$post_en</enname> مقدار زمینه دلخواهی مثلا با نام size رو نمایش بده

چند روش رو تست کردم. اما چون یکم کدها تو در تو هست، با خطا مواجه میشه

لینک به ارسال

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

(اینجا همه جمع شدیم تا مشکلات هم رو حل کنیم.)

موفق باشید.

لینک به ارسال
  • 3 هفته بعد...

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

(اینجا همه جمع شدیم تا مشکلات هم رو حل کنیم.)

موفق باشید.

شرمنده من الان این پست رو دیدم

برای اینکه برای هر پست در وردپرس یک آدرس xml اختصاصی ( نمیگم فایل xml . چون بصورت فیزیکی ایجاد نشده ) داشته باشید باید مراحل زیر انجام بشه :

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

یک فایل درست میکنیم که عنوان ، تاریخ و لینک 4 پست آخر رو به صورت xml خروجی بده .

فایل myxml.php رو در روت وردپرستون بسازید و UTF8-withoutBOM رو براش انتخاب کنید .

کد های زیر رو داخلش قرار بدید :


<?php
require('wp-blog-header.php');

$id = (isset($_GET['p'])) ? (intval($_GET['p'])) : '0';
$content = '<?xml version="1.0" encoding="UTF-8"?>' . PHP_EOL;

$defaults = array(
'numberposts' => 5, 'offset' => 0,
'category' => 0, 'orderby' => 'post_date',
'order' => 'DESC', 'include' => '',
'exclude' => '', 'meta_key' => '',
'meta_value' =>'', 'post_type' => 'post',
'suppress_filters' => true
);

$args = array(
'numberposts' => 4
);
$post_array = query_posts("p=$id");

$content .= '<posts>' . PHP_EOL;
for($i=0; $i<count($post_array); $i++){

$post_title = $post_array[$i]->post_title;
$post_date = $post_array[$i]->post_date;
$post_link = $post_array[$i]->guid;
$post_name = $post_array[$i]->post_name;
$post_id = $post_array[$i]->ID;
$post_permalink = "?p=" . $post_id;

$content .= "<post>
<title>$post_title</title>
<date>$post_date</date>
<link>$post_link</link>
</post>" . PHP_EOL;

}
$content .= '</posts>' . PHP_EOL;
Header('Content-type: text/xml');
echo $content;
?>

در خط اول


require('wp-blog-header.php');

ما فایل wp-blog-header.php که فانکشن های مورد نیاز مارو تامین میکنه رو ضمیمه کردیم .

در این قسمت :


$content = '<?xml version="1.0" encoding="UTF-8"?>' . PHP_EOL;

ما متغیر content رو ایجاد میکنیم .

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

تا اینجا مربوط میشد به اینکه یه سری اطلاعات از هر پست رو توی یه فایل xml داشته باشیم .

********************************************************************************

حالا پاسخ سوالی که اینجا مطرح کرده بودم :

استاد فخار یه سوال دارم

ببینید یه حلقه داریم به این صورت :


for($i=0; $i<count($post_array); $i++){

$post_title = $post_array[$i]->post_title;
$post_date = $post_array[$i]->post_date;
$post_link = $post_array[$i]->guid;
$post_name = $post_array[$i]->post_name;
$post_id = $post_array[$i]->ID;
$post_permalink = "?p=" . $post_id;

$post_en = $post_array[$i]-> echo . $post_enname .
$content .= "<post>
<title>$post_title</title>
<date>$post_date</date>
<link>$post_link</link>
<enname>$post_en</enname>
</post>" . PHP_EOL;

}

میخوام خط <enname>$post_en</enname> مقدار زمینه دلخواهی مثلا با نام size رو نمایش بده

چند روش رو تست کردم. اما چون یکم کدها تو در تو هست، با خطا مواجه میشه

برای انجام این کار ، حلقه ی for که توی کدهای بالا هست رو به این صورت تغییرش میدیم :


for($i=0; $i<count($post_array); $i++){

$post_title = $post_array[$i]->post_title;
$post_date = $post_array[$i]->post_date;
$post_link = $post_array[$i]->guid;
$post_name = $post_array[$i]->post_name;
$post_id = $post_array[$i]->ID;
$post_permalink = "?p=" . $post_id;
$custom_field = get_post_meta($post_id, 'size', true);
$content .= "<post>
<title>$post_title</title>
<date>$post_date</date>
<link>$post_link</link>
<custom>$custom_field</custom>
</post>" . PHP_EOL;

}

تمام .

ضمن اینکه یه تشکر ویژه باید بکنم از دوست خوبم EM4D-M ( از دوستان توی شاپکیپر ) که کمک خیلی خوبی توی این مورد بهم کرد .

لینک به ارسال

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

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

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

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

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

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

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

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

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