不带上载文件夹路径的媒体URL插件

时间:2018-04-28 作者:Ken JP Stuczynski

我试图模拟安装根目录中文件的多个子文件夹的外观,但这些文件夹名称将与需要使用相同名称的页面冲突。

换句话说,我希望媒体文件显示为与页面位于同一文件夹中,就像页面URL是真实文件夹一样。

示例:

http://example.com/courtcase/ 将是法院案例的页面,并且http://example.com/courtcase/testimony.pdf 将是其中引用的文档

我可以使用允许以这种方式组织媒体文件的插件将上载目录更改为安装根目录,然后再更改子文件夹。但是,调用页面slug将导致服务器打开实际文件夹的文件目录,而不是WP数据库中的页面。

因此,我所需要的只是将媒体文件放在安装以外的另一个目录中以消除冲突,然后在安装目录路径中开始文件的缓冲。

示例:http://example.com/wp-content/uploads/courtcase/testimony.pdf将成为http://example.com/courtcase/testimony.pdf

当然,我需要对所有媒体文件执行此操作,而不是手动添加重播。

{注意:这是客户的要求。是的,对URL如此关注是疯狂的,但这是项目的需求,他们不会接受任何其他结果。}

1 个回复
SO网友:Manyang

如果您将permalink更改为在设置中发布名称并附上证词。pdf在您的帖子中,您将获得http://example.com/your_post/testimony.pdf, 要获取您可以使用此代码获取的文本的url,请执行以下操作

    <?php

$args = array(
    \'post_type\'   => \'attachment\',
    \'numberposts\' => -1,
    \'post_status\' => \'any\',
    \'post_parent\' => $post->ID,
    \'exclude\'     => get_post_thumbnail_id(),
);

$attachments = get_posts( $args );

if ( $attachments ) {
    foreach ( $attachments as $attachment ) {
        echo apply_filters( \'the_title\', $attachment->post_title );
        the_attachment_link( $attachment->ID, false );
    }
}

?>
或者将此代码放在单个中。php

<ul>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post();    
//add in bootom of loops
 $args = array(
   \'post_type\' => \'attachment\',
   \'numberposts\' => -1,
   \'post_status\' => null,
   \'post_parent\' => $post->ID
  );

  $attachments = get_posts( $args );
     if ( $attachments ) {
        foreach ( $attachments as $attachment ) {
           echo \'<li>\';
           the_attachment_link( $attachment->ID, true );
           echo \'<p>\';
           echo apply_filters( \'the_title\', $attachment->post_title );
           echo \'</p></li>\';
          }
     }

 endwhile; endif; ?>
</ul>
代码返回http://wp.example.net/post_name/attachment_name.这是参考https://codex.wordpress.org/Function_Reference/get_attachment_link

结束

相关推荐

将文件上载到Uploads文件夹时向自定义用户角色发送电子邮件通知

我已经编写了一个自定义php,允许我的模板页面中的用户从前端上传新创建的子文件夹中的文件user_login 作为其名称uploads 文件夹因此,将上载根文件夹,并在用户的子文件夹中存储所有文件。这是我的密码。<form enctype="multipart/form-data" action="" method="POST" class="centered"> <p><