![](/img/trans.png)
[英]How do I pass the product category name from the wordpress URL to my shortcode?
[英]How do I use the category name rather than the category id in my url?
我正在使用 CodeIgniter 框架,并且无法弄清楚如何让我的 url 显示类别名称,但我的查询仍然引用类别 ID。
我有一个名为作业的 controller 设置。 url 的结构是“example.com/jobs/listings/category_id”示例:“example.com/jobs/listings/3”,其中 3 是“软件”的类别 ID。
我宁愿 url 说“example.com/jobs/listings/category_name”示例:“example.com/jobs/listings/software”。
我遇到的问题是“jobs”表保存了job所属的category_id,而不是category_name。 我有一个单独的表,其中仅包含类别 ID 及其名称。 我不知道如何 A.) 写我的查询和 B.) 做一个 SEO 友好的 url 结构。
我当前的查询类似于“SELECT * FROM jobs WHERE cat_id = 3;
另外,我不确定是否应该在 .htaccess 文件中使用 mod_rewrite,或者是否应该在 CodeIgniter 中使用 routes.php 文件。
任何帮助将不胜感激!
-谢谢
只需加入您的另一张桌子。
SELECT * FROM jobs JOIN categories ON jobs.cat_id = categories.id WHERE categories.name = ?;
如果您还没有,请确保在类别名称上放置一个唯一键。
mod_rewrite
对应用程序路由来说是一个糟糕的解决方案,无论如何在这里也无济于事。 坚持你的框架提供的任何东西。
在 URL_title() 上查看http://codeigniter.com/user_guide/helpers/url_helper.html
使用 url_title() function 转换类别名称,确保没有重复项。
当调用 url 时,使用简单的 where 语句从 model 中查找您的类别
例如
$this->db->from('categories');
$this->db->where('name', $url);
Etc...
使用它来加载您的页面标题等,然后使用返回的 categoryid 在您的工作表上进行查找。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.