MKDIR(wp_mkdir_p)与" - "出来很奇怪

时间:2015-04-17 15:07:53

标签: php

使用MKDIR

  

File Name Test – () _ <>

然而,创建它的文件夹:

  

File Name Test &#8211; () _ <>

显然&#34; - &#34;似乎引起了一个问题。

代码

以下是我使用的汽车:

$web_video_location = get_the_title();
$category = get_the_category();
$catname = $category[0]->cat_name;

if (wp_mkdir_p('./wp-content/uploads/webvideos/'.$catname."/".$web_video_location)) {
  echo "";
}

我不太确定我错过了什么。该文件夹是在网络服务器上创建的。

更新

如果我制作WP标题,例如:

File Name Test-() _ <>

它创建一个文件夹:

File Name Test-() _ <>

它似乎与空间有关。

更新

我也试过这个:

$mkdir_cat = "$webdir$catname";
$mkdir_file = "$mkdir_cat/$web_video_location";


if (wp_mkdir_p( $mkdir_file )) {
  echo "";
}

仍然没有快乐。我觉得这有点过头了。

如果猫有-它有效吗?我不明白。

1 个答案:

答案 0 :(得分:2)

这是WordPress尝试提供帮助 - wptexturize function会自动在整个地方运行,包括the_title / the_title()应用的过滤器get_the_title()。它做各种各样的&#34;智能&#34;变换,包括将-(空格连字符空格)转换为(短划线)。

但是,它通过发布像&#8211;这样的HTML实体来实现这一点。当您尝试将内容用于除HTML显示之外的其他内容时,这不太有用。

我可以想到一些解决方法:

  • 允许WordPress对短划线进行格式化,然后使用html_entity_decode对其进行取景,例如$web_video_location = html_entity_decode(get_the_title());
  • 全局禁用wptexturize,例如使用run_wptexturize,只留下你的头衔
  • 以不同的方式获取标题,例如直接访问$post->post_title;您可以看到the source of the get_the_title function有关如何
  • 的一些提示
  • 使用标题以外的内容作为文件名,例如帖子上的Custom Field