Php 从wordpress中的url删除附件段塞
我正在尝试从wordpress生成的附件URL中删除附件slug。我当前的URL结构如下所示: www.site.com/category/folder/附件/file 我为此做了一个函数,但是我得到的url输出是www.site.com/folder/file,它缺少类别。你知道我该怎么解决吗?以下是我到目前为止得到的信息:Php 从wordpress中的url删除附件段塞,php,wordpress,Php,Wordpress,我正在尝试从wordpress生成的附件URL中删除附件slug。我当前的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 );
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 );
附言:我知道如果我从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' );