Wordpress在网址中添加数字

时间:2014-02-26 10:31:33

标签: wordpress .htaccess url

我在wordpress网址中遇到了问题。我有下面的网址

  

http://www.example.com/sample-post/

但在搜索引擎中

  

http://www.example.com/sample-post/

     

http://www.example.com/sample-post/500012

     

http://www.example.com/sample-post/323392

     

http://www.example.com/sample-post/5

请给我一个解决这个问题的想法。

1 个答案:

答案 0 :(得分:0)

我在

找到的答案

https://wordpress.stackexchange.com/questions/70992/appending-numbers-to-url-do-not-break-the-link

  

http://toscho.de/2010/wordpress-plugin-canonical-permalink/   描述:从请求URI中删除非法数字后缀。   版本:0.3作者:Thomas Scholz作者URI:http://toscho.de   创建时间:04.04.2010   * /

     

add_action('wp','t5_canonical_request'); / ** * WordPress允许URI   带有任何数字后缀,例如:* / canonical-page-or-postname / 12345 /   *此函数执行简单检查,并在必要时将*重定向到规范URI。 * * @return void * / function   t5_canonical_request(){       全球$ page,$ post;

// post, page, attachment, preview
if ( ! is_singular() or is_preview() )
{
    return;
}

$permalink = get_permalink();

// We don't have access to the number of sub pages here.
// So we have to hack.
$max_pages = substr_count(
    $post->post_content, '<!--nextpage-->') + 1;

if ( 1 < $page and $page <= $max_pages )
{
    /*
     * Handle different permalink settings, eg:
     * /%year%/%postname%.html or
     * /%year%/%postname%/
     */
    $rev_perma_struct = strrev(get_option('permalink_structure'));

    if ( '/' != $rev_perma_struct[0] )
    {
        $permalink .= "/$page";
    }
    else
    {
        $permalink .= "$page/";
    }
}

$host_uri       = 'http'
                . ( empty ( $_SERVER['HTTPS'] ) ? '' : 's' )
                . '://' . $_SERVER['HTTP_HOST'];
$canonical_path = str_replace($host_uri, '', $permalink);

if ( ! empty ( $_GET ) )
{
    global $wp;
    // Array
    $allowed = $wp->public_query_vars;

    $out_arr = array();

    foreach ( $_GET as $k => $v )
    {
        if ( in_array($k, $allowed ) )
        {
            $out_arr[] = $k . ( empty ( $v ) ? '' : "=$v" );
        }
    }

    if ( ! empty ( $out_arr ) )
    {
        $canonical_path .= '?' . implode('&', $out_arr);
    }
}

if ( $canonical_path == $_SERVER['REQUEST_URI'] )
{
    return;
}
// Debug current result:
#print '<pre>' . var_export($canonical_path, TRUE) . '</pre>';

// Change it or return 'false' to stop the redirect.
$canonical_path = apply_filters(
    't5_canonical_path',
    $canonical_path
);

if ( FALSE != $canonical_path )
{
    header('Location: ' . $permalink, true, 301);
    die("<a href='$permalink'>$permalink</a>");
}

return; }