首页 文章

Wordpress如果文件存在,页面slug名称显示图像其他什么都没有,它是怎么样的

提问于
浏览
0

我需要在一个名为PHP Code Widget的wordpress小部件中添加一个php代码,它只要求正确封闭:

所有PHP代码都必须包含在标准的php开始和结束标记()中,以便识别和执行它 .

代码必须使用当前页面 Headers slug(我将使用PAGES而不是帖子)来查看在上传文件夹中是否有任何以当前页面 Headers SLUG命名的.jpg图像 . 如果有这样的图像,那么它会显示出来:

如您所见,它还必须使用图像alt的当前页面 Headers . 如果可能的话,检索图像的高度和宽度,并将它们放在他们的html部分 . 然而,最后一个不是必须的,因为我可以手动将所有图像调整到相同的大小并保留那些固定的 .

所以或多或少的伪代码将是这样的:

php启动IF文件存在uploads / current-page-slug.jpg然后其他什么都没做php结束

我已经阅读了一些关于wordpress循环的内容,我不确定当前页面slug和当前页面 Headers 是否可以从侧边栏小部件中获得 .

请帮帮我 .

1 回答

  • 1

    首先,您需要获取当前页面的slug并希望将其放入变量中:

    $mySlug = basename(get_permalink());
    

    我倾向于在我的代码中使用变量作为路径名,因此,使用/ uploads /文件夹:

    $myImgDir = "/uploads/"
    $myImgFile = $myImgDir . $mySlug . ".jpg"
    

    我们需要的两个PHP函数需要服务器路径而不是URL,因此我们需要为此创建第三个变量:

    $myImgFileLoc = $_SERVER['DOCUMENT_ROOT'] . $myImgFile;
    

    接下来,我们设置条件以查看文件是否存在:

    if (file_exists($myImgFileLoc)) {
    

    为了获得图像属性,我们将使用PHP的getimagesize()函数 . 此函数读取图像文件并将各种属性加载到索引数组中 . 索引0和1分别包含宽度和高度,但索引3实际上包含一个将提供HTML大小属性的字符串:

    $myImgAttriburtes = getimagesize($myImgFileLoc);
    $myImgSize = $myImgAttriburtes[3];
    

    由于您将在循环外使用此属性,因此需要添加以下内容以获取Page的ID:

    global $post;
    

    然后我们将所有内容放在一起抓取用于alt属性的页面名称:

    <img src="<?php echo $myImgFile; ?>" <?php echo $myImgSize; ?> alt="<?php echo get_the_title($post-ID); ?>">
    

    所以整个事情看起来像这样:

    <?php
       $mySlug = basename(get_permalink());
       $myImgDir = "/uploads/";
       $myImgFile = $myImgDir . $mySlug . ".jpg";
       $myImgFileLoc = $_SERVER['DOCUMENT_ROOT'] . $myImgFile;
       if (file_exists($myImgFileLoc)) {
          $myImgAttriburtes = getimagesize($myImgFileLoc);
          $myImgSize = $myImgAttriburtes[3];
          global $post;
       ?>
         <img src="<?php echo $myImgFile; ?>" <?php echo $myImgSize; ?> alt="<?php echo get_the_title($post->ID); ?>">
    
    <?php } ?>
    

相关问题