PDA

View Full Version : چگونه تولید لینک برای پست ها و دسته ها در php



<?php?>
شنبه 04 اردیبهشت 1395, 07:55 صبح
من یک صفحه دارم که برای نوشتن پست سایت که دارای فیلد های :
+ عنوان پست
+ text پست که توسط یک ادیتور ساخته شده
+ برچسب برای هر پست
+ اضافه کردن دسته مورد نظر برای هر پست

مشکلی که قعلا تو ثبت پست دارم ایناست . ممنون میشم راهنماییم کنید .
وقتی پست تو database ثبت میشه . چطور باید براش یک لینک تولید کنیم .

یعنی یک پست بسازیم با عنوان : دانلود آهنگ جدید

+ آدرس پست این بشه مثلا : site.com/news.php=?id=55656565
+ یا آدرس پست این بشه : site.com/دانلود آهنگ جدید

<?php?>
یک شنبه 05 اردیبهشت 1395, 12:56 عصر
کسی نیست تو این انجمن به این بزرگی :)

anvar
یک شنبه 05 اردیبهشت 1395, 14:33 عصر
برای تنظیم نحوه نمایش آدرس پست ها از پنل مدیریت وردپرس منوی تنظیمات -> پیوندهای یکتا رو کلیک کن - در این صفحه می تونی نحوه نمایش لینک رو تنظیم کنی

هر پستی هم که اضافه بکنی از منوی نوشته ها -> همه نوشته ها می تونی اون رو به همراه سایر پست های ثبت شده مشاهده کنی - در این لیست اگر موس بر روی هر پست ببری لینک اون رو در قسمت پائین مرورگرت مشاهده م یکنی یا می تونی بر روی نمایش کلیک کنی تا پست در صفحه جدیدی باز شود - الان در آدرس بار مرورگر می تونی لینک اون پست رو ببینی

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

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

در کل هدف اصلی سوالت نامشخص بود

<?php?>
یک شنبه 05 اردیبهشت 1395, 18:46 عصر
ممنون ولی دارم یک cms اختصاصی طراحی میکنم .

برای طراحی همچین بخشی با Php نیاز به راهنمایی داشتم نه برای وردپرس .
بازم ممنون که پاسخ دادید .

anvar
دوشنبه 06 اردیبهشت 1395, 03:38 صبح
شرمنده -
برای نمایش لیستی از پست های ثبت شده (همون تولید لینک)
فرض می کنیم شما جدولی برای پست ها با نام post دارید - این جدول حداقل دارای 5 ستونه (id - title - content - tags - category)

احتمالا یا درج اطلاعات در بانک آشنایی دارید - از این قسمت صرفنظر می کنم

زمانی که شما می خواهید لینک پست ها رو بسازید - یک پرس جو در جدول پست می زنی و در داخل حلقه While اطلاعات هر سطر (هر پست) را گرفته و با تگ های html لینک های خودت رو می سازی

بعنوان مثال :

$posts = $connection->perpare("SELECT * FROM posts");
$posts->execute();
While($row = $posts->fetch())
{
$post_id = $row['id'];
$post_title = $row['title'];
echo "<div>";
echo "<a href='news.php?id={$post_id}'>{$post_title}</a>";
echo "</div><hr>";
}

در خط ماقبل آخر لینک هر پست رو تولید کردیم - news.php?id=100
شما برای نمایش متن هر خبر باید صفحه ای با همین نام داشته باشید - اون id رو (در اینجا 100) از بانک می گیریم و بعد از news.php?id= قرار می دهیم.

در واقع در هر بار اجرای حلقه اطلاعات یک پست گرفته میشه - id و title و لینک ساخته میشه - بعد پست بعدی و این عمل تا پایان تعداد پست ها در بانک اجرا میشه

<?php?>
دوشنبه 06 اردیبهشت 1395, 06:43 صبح
اگر بخوام اینطوری ساخته بشه چی :
site.com/دانلود آهنگ جدید
-----
ایده خودم اینه که یک تابع بنویسم و فاصله هارو تبدیل به ( - ) کنم و بعدش در کنار id بزارم . این کار درستیه؟

یا باید از فایل htacses استفاده کرد؟
ممنون

<?php?>
شنبه 11 اردیبهشت 1395, 14:44 عصر
کسی نمیتونه کمک کنه که به این شکل لینک هر پست رو تولید کنم ؟

site.com/دانلود آهنگ جدید

Farshid007
یک شنبه 12 اردیبهشت 1395, 09:20 صبح
کسی نمیتونه کمک کنه که به این شکل لینک هر پست رو تولید کنم ؟

site.com/دانلود آهنگ جدید
هم در این سایت و هم در گوگل جستجو کنید URLRewrite

<?php?>
یک شنبه 12 اردیبهشت 1395, 12:58 عصر
این url قبلی سایت بوده : site.com/post.php?id=30
بعدش با کد های htaccess زیر اونو تبدیل به این کردم : site.com/post/30



RewriteEngine On RewriteRule ^post/([0-9a-zA-Z]+)/?$ post.php?id=$1




مشکل فعلیم اینه که با هر دو url صفحه پست بالا میاد .
من از انواع روش برای اینکه site.com/post.php?id=30 رو مدیریت منم و یا ریدایرکتش نم به صفحه اصلی و یا نشون ندم استفاده کردم .ولی کار نکردم . از RewriteCond برای شرط استفاده کردم که نشد .