Codeigniter を使用してコンテンツ管理システムを作成しようとしています。記事のタイトルのリストを表示するページがあります。ユーザーがいずれかの記事のタイトルをクリックすると、その記事の詳細が別のページに表示されます。
次のコードを使用して、記事のタイトル リストを表示しています。
<a href="<?php echo base_url(); ?>article/<?php echo $row['article_id']; ?>">
<?php echo $row['article_title']; ?></a>
ユーザーが上記のリンクをクリックすると、article_id が取得され、次のコントローラーに移動します。
コントローラ:
function index($id){
$this->load->model('mod_articles');
$data['records']=$this->mod_articles->list_articles($id);
$this->load->view('view_article',$data);
}
モデル :
function list_articles($id)
{
$this->db->select('*');
$this->db->from('article');
$this->db->where('article_id', $id);
$query = $this->db->get();
return $query->row_array();
}
結果を表示すると、ブラウザのアドレスバーにリンクが次のように表示されます-
localhost/cms/article/1 //<< here localhost/cms/ is my base_url
このWeb サイトによると、良い SEO フレンドリーな URL の例は次のとおりですhttp://www.mysite.com/joomla-seo-tips
。
localhost/cms/article/my-article-title
今私の質問は、リンクの最後に記事のIDを表示する代わりに、私のURLを次のように見せる方法ですか?
これを達成するには、記事 ID の代わりに記事のタイトルを照会する必要がありますか、それを行うためのより良い方法がありますか?
これについてあなたのアイデアを共有してください。
前もって感謝します :)
編集
コンテンツを保存する前に、次のコードを実行して get$article_slug
を保存する必要がありますか?
function create_slug($string){
$slug=preg_replace('/[^A-Za-z0-9-]+/', '-', $string);
return $slug;
}
$article_slug= create_slug('My Name '); // as you suggested I will create a new column for this