如何使用Wordpress和自定义参数实现SEO友好的URL

时间:2014-03-21 12:47:28

标签: wordpress url

我遇到一个很大的问题,我无法使用Linkedin Share按钮。

其中一个原因是我使用的非友好网址。

基本上我已经为wordpress构建了一个插件,向我展示了工作。

这是完美展示工作和一切,但链接看起来像这样

www.recruitmentagency.com/job/?id=250

我希望它看起来像

www.recruitmentagency.com/job/250

www.recruitmentagency.com/job/job-id/250

我尝试将重写规则添加到htaccess但没有运气

RewriteRule ^job/([0-9]+)/$ job/?id=$1
RewriteRule ^job-id/([0-9]+)/$ /?id=$1

并且没有一个工作。

任何解决方案都将不胜感激。

2 个答案:

答案 0 :(得分:1)


我也面临同样的问题。经过很长一段时间我达到了以下的解决方案:

add_filter('rewrite_rules_array','job_rewrite_rules_array');
    function job_rewrite_rules_array($rules){

        $job_page = get_post(123);
        $job_rules = array();
        if( is_object($job_page) ){
            $job_slug = $job_page->post_name;
            $job_rules[$job_slug.'/([^/]*)$'] = 'index.php?pagename='.$job_slug.'&jobid=$matches[1]'; 
        }
        return $job_rules + $rules;
    }
//Bind Query Var
        add_filter('query_vars','job_query_vars');
        function job_query_vars($vars){
            array_push($vars, 'jobid');
            return $vars;
    }

只执行一次job_rewrite_flush

function job_rewrite_flush(){
        global $wp_rewrite;
        $wp_rewrite->flush_rules();
    }
add_action('init','job_rewrite_flush'); 

现在访问参数:$jobid= get_query_var( 'jobid', 1 )

我认为上述脚本可以根据您的要求运行。

答案 1 :(得分:0)

我尝试使用内置系统并且部分正常工作。

但是我不喜欢这样做的方式。

而不是像

那样得到这份工作
$job_id=$_GET['id'];

我得到它像

$job_id=wp_query->query_vars['page'];

当页面加载时

www.recruitmentagency.com/job/250

我甚至不明白为什么我所谓的job-id作为一个页面出现,但我正在使用它,因为我需要它才能工作。