上下文:对于特定部分中使用的站点图像,每篇文章都依赖于放入元数据中的基本名称,然后将其与自动扩展一起使用,以生成大型图像、库缩略图以及索引页缩略图。
例如,如果example\\u Name是基名称,则:
Example_Name_2-LG.jpg
是系列中的第二个大图像
Example_Name_2_SM.jpg
是对应的第二个库缩略图图像
Example_Name_IN.jpg
是否选择索引缩略图来表示集合
通过使用元数据和PHP条件,客户端只需输入一次基名称,然后将适当命名的图像上载到Uploads文件夹,页面模板将填补空白。
所有这些都很好,但有一个问题。缩略图有七个插槽,页面显示所有缩略图div,即使上载文件夹中的缩略图图像少于七个。
我想用一个使用file_exists
检查Uploads文件夹中是否存在缩略图,以便如果指定的文件路径中不存在命名图像,则不会显示相应的空div(及其超链接)。
我试着用wp_uploads_dir
功能,以及bloginfo(\'template_directory\')
甚至不推荐的TEMPLATEPATH
, 但只成功地生成了PHP错误。我假设这是一个路径问题,或者是一些我不了解PHP函数的特殊情况file_exists
.
使用wp\\u upload\\u dir的页面放大示例:
<?php
$upload_dir = wp_upload_dir();
if ( file_exists( echo $upload_dir[\'baseurl\'] . \'/\' . echo get_post_meta($post->ID, \'_meta_example_name\', true) . \'_7_SM.jpg\') ) {
?>
<div id="thumb7" class="thumb"> <!-- Should appear only when Example_Name_7_SM.jpg exists -->
...
</div>
<?php } ?>
感谢您的任何建议。
SO网友:birgire
您不能在中使用文件urlfile_exists()
像这样:
file_exists( "http://example.com/wp-content/uploads/Example_Name_2_SM.jpg" );
您应该使用绝对文件路径,例如:
file_exists( "/absolute/path/to/wp-content/uploads/Example_Name_2_SM.jpg" );
那你应该试试
$meta = get_post_meta( $post->ID, \'_meta_example_name\', true );
$file = $upload_basedir . \'/\' . $meta . \'_7_SM.jpg\';
if ( file_exists( $file ) ) {
//...
}
在哪里
$upload_basedir = WP_CONTENT_DIR . \'/uploads\';
或
$upload_dir = wp_upload_dir();
$upload_basedir = $upload_dir[\'basedir\'];
SO网友:s_ha_dum
在这行中。。。
if ( file_exists( echo $upload_dir[\'baseurl\'] . \'/\' . echo get_post_meta($post->ID, \'_meta_example_name\', true) . \'_7_SM.jpg\')` )
。。。你不会想要这些的
echo
s、 你不是想
echo
任何东西你甚至有
echo
s中穿插着字符串串联。把这些都去掉。
if (
file_exists( $upload_dir[\'baseurl\'].\'/\'.get_post_meta($post->ID,\'_meta_example_name\',true).\'_7_SM.jpg\')
)
不过,我可能会更早地检查post meta,并跳过调用
file_exists
如果元密钥为空。
$upload_dir = wp_upload_dir();
$meta_name = get_post_meta($post->ID,\'_meta_example_name\',true);
if (
!empty($meta_name)
&& file_exists( $upload_dir[\'baseurl\'].\'/\'.$meta_name.\'_7_SM.jpg\')
) {
// your markup
}
SO网友:Khaled Developer
如果你需要主题,你可以使用我的功能
function file_checker($file){
//http://localhost/wordpress/wp-content/themes/THEMEName
$location = get_template_directory_uri();// you can edit this <=
$location = str_replace("http://","",$location);
$location = str_replace("https://","",$location);
$location = str_replace($_SERVER[\'HTTP_HOST\'],"",$location);
$location = $_SERVER[\'DOCUMENT_ROOT\'].$location;
$filename = $location.$file;
if (file_exists($filename)) {
return true;
} else {
return false;
}
}
使用
if(file_checker("/style.css")){
echo "file Has";
}else{
echo " Error Location , Check Your Code";
}