ساخت یک ماژول “آخرین پست ها” برای خارج از محیط وردپرس
با سلام خدمت تمامی دوستان خوبم.در آموزش امروز قصد داریم یک کار ناب و جدید را با انجام بدهیم.هدف از انجام این آموزش زمانی خودش را نشان می دهد که شما سایتی وردپرسی دارید که یک قالب دارد و مثل همیشه مطالب بر اساس قالبی که شما در شاخه theme نصب میکنید برای کاربران نمایش داده میشود.بیان فرض کنیم قالب نداریم اون موقع چطور میخواین برای کاربرانتون مطالب را نمایش بدهید.اصلا برای سبک شدن سایت و پروژه هاتون نمیخواین فایل های ستگین header.php و مواردی از این دست لود و خوانده بشود ؟!
جالب شد نه! تصور اینکه بدون داشتن قالب بخواین این کار را انجام بدهید خیلی جالب و کاربردی است.اگر فکر کنید میتونید خیلی کارای بزرگ انجام بدهید.خوب حالا میریم سر وقت آموزش :
نکته : اول اینکه یادتون باشه در وردپرس فرآیند ایجاد ارتباط بین قالب و دیتابیس تماما در فایلی به نام wp-load.php گنجانده شده است.این فایل مسئول ارتباط با دیتابیس و سایر بخش ها می باشد.خوب من برای آموزشم میخوام از همین فایل استفاده کنم.برا ی استفاده و شروع کد نویسی همراه با من پیش بروید تا نتیجه یکسان در بیاد.اون موقع میتوانید به ساختن ظاهری زیبا و بهره گیری از آن با مقاصد خاص استفاده کنید 🙂
فایلی به نام love.php بسازید و این فایل را دقیقا در روت وردپرس بزارید فعلا.بعدا میتونید اون را جابجا کنید.به حالت ویرایش این فایل بروید و کدی را که براتون آماده کردم درونش قرار دهید :
نکته : یادتون باشه این فایل استفاده میکند از وردپرس است ولی خارج از محیط وردپرس.مثال برایش اینطوری است که شما چندتا بلاگ داری و به این شیوه میتونی آخرین مطالب هر کدام رو نشون بدهی 🙂 مطمئنم جرقه هایی تو ذهن شما زده شد. خوب بگذریم داخل فایل کد زیر را بزارید:
[php]<html dir="rtl">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<?php
// Include the wp-load’er
include(‘wp-load.php’);
// Get the last 10 posts
// Returns posts as arrays instead of get_posts’ objects
$recent_posts = wp_get_recent_posts(array(
‘numberposts’ => 10
));
// Do something with them
echo ‘<ul>’;
foreach($recent_posts as $post) {
echo ‘<li><a href="’, get_permalink($post[‘ID’]), ‘">’, $post[‘post_title’], ‘</a></li>’;
}
echo ‘</ul>’;
?>
</body>
</html>
در کد بالا که شما آماده کردید فایل wp-load.php فراخوانی شد و ارتباط با دیتابیس انجام میگیرد و عنوان 10 مطلب اخیر نمایش داده میشود.حالا شما میتوانید اطلاعات دیگه هم برای نمایش قرار بدهید مثل خلاصه مطلب یا تاریخ و …
این فقط یک کوئری ساده بود شما به پهنای بزرگی فکرتون میتونید با این آموزش کارای بزرگ انجام بدهید.
امیدوارم از این آموزش استفاده لازم را ببرید.
شادی از آن لحظه های شما …
لینک کوتاه : https://3zar.ir/?p=20348
سلام
اولا تشکر بابت آموزش خوب و کاربردیتون
دوما یه سوال
آیا میشه این فایلی رو که ساختیم تو یه سایت دیگه که از وردپرس استفاده نمیکنه
بزاریم تا آخرین ارسالهای سایت وردپرسیمون رو نشون بده
مثلا در جوملا
یا
در یه سایت وردپرسی طوری استفاده اش کنیم که در ابزارک نمایش داده بشه
با تشکر
سلام علی جان
دقیقا این یکی از کاربرد های این ماژول است.
در هنگام انکلود کردن مسیر درست را بدهید و اگر اطلاعات دسترسی را خواست بدهید به راحتی میتوانید از دیتابیس خود بهره بگیرید فقط سوء استفاده نکنید 🙂
موفق باشید.
سلام
ممنون از کدهای حرفه ای شما
موفق باشید
من روی لوکال تست کردم خطا میده:
Warning: include(mr.odyseh.ir/wp-load.php): failed to open stream: No such file or directory in C:\Program Files\EasyPHP-12.1\www\wpposts.php on line 8
Warning: include(): Failed opening ‘mr.odyseh.ir/wp-load.php’ for inclusion (include_path=’.;C:\php\pear’) in C:\Program Files\EasyPHP-12.1\www\wpposts.php on line 8
Fatal error: Call to undefined function wp_get_recent_posts() in C:\Program Files\EasyPHP-12.1\www\wpposts.php on line 12
سلام
اسمتون رو هم نمیدونم !
تست گرفته شده و مشکلی ندارد.شما همون چیزی که قرار دادم استفاده کنید در لوکال مشکلی نیست.در غیر این صورت کدهای خود را اینجا بزارید تا چک کنم.
اسمم سامان هست.
من همون کد رو استفاده کردم فقط آدرس فایل wp-load.php رو تغییر دادم به آدرس روی سایتم.
یعنی خط هشتم رو به اینصورت تغییر دادم:
include(‘http://mr.odyseh.ir/wp-load.php’);
تو این آموزش آقا سامان فراخوانی فایل برای زمانی است که فایل درون خود لوکال هاست خودتون است مثلا شما چند تا وردپرس داری و میخوای آخرین مطالب اونها را در قالب اصلیت اینکلود بکنی.برای چیزی که شما میخواین خوب به نظرتون اطلاعات ftp را نمیخواد بدید ؟
تا اونجا که یادم میاد برای دادن و گرفتن ftp از دستور زیر استفاده میشد :
[php]
define(‘FTP_USER’, ‘username’); //نام کاربری
define(‘FTP_PASS’, ‘password’); //رمز عبور
define(‘FTP_HOST’, ‘ftp.example.org’); // آدرس FTP
define(‘FTP_SSL’, false);
[/php]
بابت پاسختون ممنونم. من هدف اصلی این ماژول رو اشتباه فهمیدم!
اتفاقا همون کاری که شما انجام دادید یکی از کاربردهاش می باشد.
رضا جون کولاک کردی عزیز
بابت اطلاع رسانی های پیامکی هم ممنون
یدونه باشی داداش
قربانت مجتبی جان.
ممنون رضا جان. اما سوال اینجاست که چطور میشه لینک ها رو در یک برگه html خارج از وردپرس لود کرد؟ ممنون میشم بیشتر توضیح بدید
با یک دستور ساده میتوانید فایل های خود را داخل برگه های خود فراخوانی کنید :
[php]
<?php include (TEMPLATEPATH . ‘/top.php’); ?>
[/php]
با این کاری که آقا سامان کرد دقیقا فهمیدم این ماژول برای چیه
ولی فقط یه چیزی من php و وردپرس خیلی کار نکردم. 🙁
فرض می کنیم این ماژول رو توی سایت:
first.com
می زاریم و می خواهیم آخرین پست های سایت:
second.com
رو بخونه اون وقت این کده چه طوری میشه؟
کجاش باید تغییر کنه؟
[php]
// Do something with them
echo ”;
foreach($recent_posts as $post) {
echo ‘<a href="’, get_permalink($post[‘ID’]), ‘" rel="nofollow">’, $post[‘post_title’], ‘</a>’;
}
echo ”;
[/php]
دیگه بیشتر از این مخم نکشید 🙁
کد مورد نظر که برای کارتون را گیر نیاوردم.در حالت پیش فرض تست شده و مشکلی ندارد.
کدی رو که فرستادم اصلش اینه:
[php]
10
));
// Do something with them
echo ”;
foreach($recent_posts as $post) {
echo ‘<a href="’, get_permalink($post[‘ID’]), ‘" rel="nofollow">’, $post[‘post_title’], ‘</a>’;
}
echo ”;
?>
[/php]
تشکر
خوب الان میخوای چیکار کنی.طوری که ساختار این کد نشان میدهد وابسته به یک قالب است.اما کدی که در بالا معرفی شده دیگر نیازی به این نوع فرمت دستوری ندارد.
ببخشید تکراری میشه ولی گفتم یه بار هم بدون تگ کد بزنم تا ناقص نیاد:
داخل تگ php بزار.ممنون
متاسفانه باز هم اونی که می خواستم نیومد :((
ممکنه ایمیل بدید؟
با ایمیلم تماس بگیرید :
info.3zar.ir[a]gmail.com
مطلبتون خیلی عالی بود
اقا رضا میتونم بپرسم برای بخش پیامک سایت از چه پلاگینی استفاده میکنید که اینقدر زیباست؟ 🙂
سلام رسول جان
از پلاگین wp-sms سامانه خودم استفاده میکنم که سفارشی کردم.افزونه خوب و کاربردی است میتوانید توضیحاتش را اینجا بخونید و از لینک زیر قابل دریافت است :
[php]
http://www.smsde.ir/wordpress-sms-plugin/
[/php]
قربونت برم رضا جان ، ما که از خواننده های قدیمی وبت هستیم و گه گداری نظر میدیم ، قالب جدیدت هم خیلی زیباست ،
راستش مصطفی از بچه های وردپرس فارسی هم یه افزونه پیامک داره و یه افزونه پیامک دیگه هم هست که گه گداری اطلاع رسانی میکنن در باره اش ، موندیم چی استفاده کنیم
خوب من نمیتونم بگم چون تصمیم با خودت است و حق انتخاب داری!
محصول ما هم در نوع خودش خوب و عالیست.
موفق باشید.
سلام
عذر که اینجا کامنت میدم ، لینک افزونه sms رو اینجا دیدم
از این افزونه روی سامانه های دیگه غیر از سامانه شما میشه استفاده کرد؟
من نمایندگی دارم ، میخوام بببینم این افزونه رو میشه استفاده کرد یا خیر
ممنون
سلام
از طریق فرم تماس با ما در ارتباط باشید.
جالب بود ممنوم . حالا اگر بخوام فقط عنوان های یک دسته یا بخش مثلاً بخش خبری یا بخش نقد و بررسی اینجا نمایش داده بشه باید چه کدی جایگزین کنم؟
سلام
با توجه به کدهای های قرار داده شده این 10 پست با تایتل را نمایش میدهد.شما بعد دستور wp-load کدهای خود را بزارید.
سلام / ممنون از آموزش خوبتون / چه جوری میشه تصویر شاخص یا متن و زمینه های دلخواه رو حارج از محیط وردپرس نشون داد؟