繁体   English   中英

从WordPress的URL中删除附件

[英]Remove attachment slug from url in wordpress

我正在尝试从wordpress生成的附件URL中删除附件条。 我当前的URL结构如下:

www.site.com/category/folder/ 附件 / file

我为此做了一个函数,但是我得到的url输出是www.site.com/folder/file,它缺少类别。 知道我该如何解决吗? 这是到目前为止我得到的:

function wpd_attachment_link( $link, $post_id ){
    $post = get_post( $post_id );
     $post_data = get_post($post->post_parent);
    return home_url( single_cat_title('', false)."/".$post_data->post_name."/". $post->post_title );
}
add_filter( 'attachment_link', 'wpd_attachment_link', 20, 2 );

PS:我知道如果我从主wordpress菜单更改永久链接结构,但不想更改当前的永久链接结构,可以做到。

尝试以下代码:

function __filter_rewrite_rules( $rules )
{
    $_rules = array();
    foreach ( $rules as $rule => $rewrite )
    $_rules[ str_replace( 'attachment/', '/', $rule  ) ] = $rewrite;
    return $_rules;
}
add_filter( 'rewrite_rules_array', '__filter_rewrite_rules' );

function __filter_attachment_link( $link )
{
    return preg_replace( '#attachment/(.+)$#', '/$1', $link );
}
add_filter( 'attachment_link', '__filter_attachment_link' );

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM