将固定链接更改为附件

时间:2015-05-09 作者:Cristina Cristina

您好,我找到了这段代码,并修改了一个litle,但我有一个问题。

我希望附件页的链接是这样的

[post-permalink]/[gallery]/[postid]   1234/ .. /1253/ 
我尝试了这个,URL就像我想要的那样,但给了我一个404错误:

function wpd_attachment_link( $link, $post_id ){
    $post = get_post( $post_id );
    return get_permalink() . \'gallery/\' . $post->ID ;
}
add_filter( \'attachment_link\', \'wpd_attachment_link\', 20, 2 );
如何做到这一点?

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

如果更改永久链接的结构,则必须提供重写规则以了解新结构。此外,您没有正确构建附件永久链接。下一个代码正在运行:

add_filter( \'attachment_link\', \'wpd_attachment_link\', 20, 2 );
function wpd_attachment_link( $link, $attachment_id ){

    $attachment = get_post( $attachment_id );

    // Only for attachments actually attached to a parent post
    if( ! empty( $attachment->post_parent ) ) {

        $parent_link = get_permalink( $attachment->post_parent );
        // make the link compatible with permalink settings with or without "/" at the end
        $parent_link = rtrim( $parent_link, "/" );
        $link =  $parent_link . \'/gallery/\' . $attachment_id;

    }

    return $link;

}


add_action( \'init\', function() {

    // Tell WordPress how to handle the new structure
    add_rewrite_rule( \'(.+)/gallery/([0-9]{1,})/?$\', \'index.php?attachment_id=$matches[2]\', \'top\' );

} );
请记住在尝试此代码之前刷新重写规则(转到后端的permalink settgins页面并单击sabe按钮)。

结束

相关推荐

Pretty Permalinks

我创建了自己的搜索功能,基本上可以找到与输入的邮政编码最近的商店。我的搜索URL当前如下所示http://www.example.com/stores?searchTerm=London, 这并不是真正的SEO友好。我希望我的URL采用以下格式-http://www.example.com/stores/London, 然而,由于我缺乏WordPress URL重写工作的知识,我正在努力解决这个问题,希望能得到一些帮助来解决这个问题。Stores是一个循环显示结果的页面。如果有人对如何做到这一点有任何想法