attachment url rewrite

时间:2010-12-07 作者:Metin METE

我想将文件附件链接的地址更改为wordpress[示例:http:/;/;www.sitename.com/category/sub-category/article.html/attachment/图像等。]。我对这个问题做了几天的研究,但没有得到任何结果。。

看看连接的结构!“之后”.html“,”/“马克看起来来的不太好。还有”attachment“作为该部分的修复,对于不同语言的WordPress用户来说,缺少了很大一部分。我的意思是;重写。php文件链接到“author”的作者。这也是在一个简单函数的帮助下编辑的;

global $wp_rewrite;
$wp_rewrite->author_base = \'example\';
$wp_rewrite->flush_rules();
我不能因为这个”attachment“:/i我非常努力,但我无法解决此问题。。。

不管怎样,我想问你!

我不是一个程序员(我是一个平面设计师)。我想这样做,所以也许事情可以限制逻辑(:image.php)文件,因为它足以打开一个对我更有意义的url。。。

this link; http://;www.sitename。com/类别/子类别/文章。html/attachment/形象

whether such; http://;www.sitename。com/类别/子类别/文章。html?file=形象

我不知道会不会打开图像。php文件,格式为“?file=image“。所以我可以执行你的建议。

提前谢谢你。

当做Metin METE

1 个回复
最合适的回答,由SO网友:Jan Fabry 整理而成

实际上,即使启用了“pretty”永久链接,也可以始终使用查询参数。因此/category/sub-category/article.html/attachment/image 您可以访问/?attachment=image. 这种“故障”的唯一情况是/category/sub-category/article.html?attachment=image, 因为WordPress很困惑:它试图同时查询帖子和附件。然而,这很容易处理:检查请求,如果是附件,则删除其他参数。

add_action( \'parse_request\', \'wpse5015_parse_request\' );
function wpse5015_parse_request( $wp )
{
    if ( array_key_exists( \'attachment\', $wp->query_vars ) ) {
        unset( $wp->query_vars[\'name\'] );
        unset( $wp->query_vars[\'year\'] );
        unset( $wp->query_vars[\'monthnum\'] );
    }
}
现在,您只需更改生成的附件URL。由于它们几乎都是正确的格式,我们可以进行一些搜索和替换:

add_filter( \'attachment_link\', \'wpse5015_attachment_link\', 10, 2 );
function wpse5015_attachment_link( $link, $id )
{
    // If the attachment name is numeric, this is added to avoid page number conflicts
    $link = str_replace( \'attachment/\', \'\', $link );
    $attachment = get_post( $id );
    $link = str_replace( \'/\' . $attachment->post_name . \'/\', \'?attachment=\' . $attachment->post_name, $link );
    return $link;
}

结束

相关推荐

Changing attachment urls?

如何更改附件页URL的格式/[post-url]/[attachment-name]/ 到/media/[attachment-name]/? 我知道我可以覆盖get_attachment_link 通过attachment_link 过滤器,但我想我需要更改重定向结构,以便WordPress知道如何处理这些URL?