برای ایجاد url های فارسی یا هر چیز دیگه شما باید اول به وب سرور دستور بدید که مدیریت تمامی url هایی که وجود نداره رو به جای نمایش اخطار 404 به فایل index.php شما بده.
که اگه در وردپرس هم بخش پیوند های یکتا از حالت پیش فرض تغییرش بدید می بینید که چند خط کد به فایل htaccess. که قواعدی برای درخواست کنترل وب سرور هستش اضافه میکنه.
کد مورد نظر هم اینه و خوبی اش اینه که برای هر سایتی به جز وردپرس هم می تونید استفاده کنید و کنار فایل index.php خودتون یه فایل htaccess. (نقطه باید اولش باشه) اضافه کنید و توش بذارید:
کد:
<ifmodule mod_rewrite.c>
rewriteengine on
rewritebase /
rewriterule ^index\.php$ - [l]
rewritecond %{request_filename} !-f
rewritecond %{request_filename} !-d
rewriterule . /index.php [l]
</ifmodule>
منبع:
https://codex.wordpress.org/htaccess
خب تا این جا اگه چک کنید می بینید که هر آدرس url مختلفی که بزنید بازم صفحه اصلی که همون index.php باشه باز میشه.
حالا از اینجا به بعد index.php وظیفه بررسی url و مسیر دهی کاربر به محتوای مورد نظر رو داره.
شما باید بر اساس نوع url دلخواهی که دوست دارید شناسه منحصر به فردی برای هر مطلب درست کنید و در فایل index.php بر اساس اون شناسه منحصر به فرد که در url هستش محتوا رو حالا از فایل یا دیتابیس فراخوانی کنید و به کاربر نمایش بدید.
برای خوندن url ها هم می تونید از آیتم request_uri در آرایه سراسری server_$ استفاده کنید اینطوری:
کد PHP:
<?php
$url = explode('/', _server['request_uri']);
print_r($url);
در کد بالا توسط تابع explode متن request uri در هر کاراکتر اسلش ( / ) قطع شده و متون بین کاراکتر های اسلش به صورت آیتم های جدا در یه آرایه به نام url$ قرار گرفتن.
در آخر هم با تابع print_r آرایه url$ رو در صفحه نمایش دادیم.
فکر کنم دیگه تا آخرشو متوجه شده باشید نه؟ از اینجا به بعد براحتی بر اساس نوع url شما باید یا به دیتابیس query بزنید و محتوا بگیرید یا اینکه از فایلی مرتبط با شناسه منحصر به فردی که تو url هستش محتوا رو نشون بدید.
در آخر هم اگر محتوایی بر اساس url وارد شده وجود نداشت باید یه صفحه دلخواه برای اخطار 404 نشون بدید البته بایدی وجود نداره می تونید به جاش با تابع header ریدایرکت کنید به صفحه اصلی.
ناگفته نمونه که اگر صرفاً کار با url هست و نوع و ظاهر url ها مهم نیست می تونید کلاً از متد get (منظورم مثل آدرس دهی تاپیک های این انجمن) استفاده کنید تا دیگه نیاز به فایل htaccess. و مسیردهی با index.php و... هم نداشته باشید و براحتی با آرایه سراسری get_$ مقادیر رو از url دریافت کنید.