无法在Wordpress(Localhost)的媒体库中看到图像?

时间:2016-10-22 14:21:35

标签: php wordpress image file-upload localhost

我现在正在localhost(WordPress版本4.9.3.2)上开发我的网站,每当我切换到二十四等任何默认主题时,我都能够在媒体库中上传和查看图像,但每当我在我的我自己的主题,既不能查看任何图像,也不能上传。

错误如下 -

  1. 无法上传精选图片。

  2. 无法通过帖子上传任何图片。

  3. 在媒体库中看不到任何图像。

  4. 我试图通过媒体库上传的图片保存在'uploads'文件夹中,所以我知道我的文件夹位置是正确的,但即使这样我也看不到它们。

  5. 如果我尝试通过帖子或任何内容上传图片,只会通过媒体库将图片保存在“上传”文件夹中。

  6. 我尝试的解决方案 -

    1. 我还没有安装任何插件,因此禁用/启用插件是不可能的。

    2. 我已将内存限制增加到256M,没有任何反复发生。

    3. 我也尝试过再次安装wordpress,也没有发生任何事情。

    4. 我尝试在功能中将图像编辑器更改为默认值GB - 没有任何反复发生。

    5. 我不知道我做错了什么,但这让我感到非常沮丧,因为一周以来。如果有人可以提供帮助,我们将非常感激。

      谢谢!

1 个答案:

答案 0 :(得分:0)

为时已晚,希望您能够解决此问题。但是,这可能会对其他人有所帮助。

我只是遇到了同样的问题,就我而言,我在这里遇到了回调问题:

add_theme_support( 'custom-header', 
    apply_filters( 'ivana_custom_header_args', [
        'default-image' => '',
        'default-text-color' => '000',
        'width' => 1000,
        'height' => 250,
        'flex-width' => true,
        'flex-height' => true,
        'wp-head-callback' => [ $this, 'site_branding_style' ]
    ]; )
);

我正在按照this architecture的方式以面向对象的方式组织代码,但是未正确调用回调(“ wp-head-callback”)。就我而言,它在另一个类中,并且是一个私有方法,所以我将其移到同一类中,在该类中我将添加所有主题支持并使其成为公共方法。

Setup.php

<?php
/**
 * @package ivana
 */

namespace Ivana\Setup;

use Ivana\Setup\CustomArguments;

class Setup
{
    private $custom_arguments;

    public function register()
    {
        $custom_arguments_instance = new CustomArguments();
        $this->custom_arguments = $custom_arguments_instance->start();

        add_action( 'after_setup_theme', [ $this, 'setup' ] );

        // Why isn't the setup function being
        // called? We don't (8)
        // echo '<pre>';
        //     var_dump( $this->custom_arguments['header'] );
        //     var_dump( $this->custom_arguments['background'] );
        //     var_dump( $this->custom_arguments['logo'] );
        // echo '</pre>';
    }

    public function setup()
    {
        // Uncomment this for multilingual theme.
        // Currentlly there is no support whatsoever for
        // multilingual theme.
        // load_theme_textdomain( 'ivana', get_template_directory() . '/languages' );

        // Uncomment this if using WooCommerce
        // add_theme_support( 'woocommerce' );

        add_theme_support( 'automatic-feed-links' );
        add_theme_support( 'title-tag' );
        add_theme_support( 'post-thumbnails' );
        add_theme_support( 'menus' );

        add_theme_support( 'html5', [
            'search-form',
            'comment-form',
            'comment-list',
            'gallery',
            'caption'
        ] );

        add_theme_support( 'custom-header', 
            apply_filters( 'ivana_custom_header_args', $this->custom_arguments['header'] )
        );

        add_theme_support( 'custom-background', 
            apply_filters( 'ivana_custom_background_args', $this->custom_arguments['background'] )
        );

        add_theme_support( 'custom-logo', 
            apply_filters( 'ivana_custom_logo_args', $this->custom_arguments['logo'] )
        );

        add_theme_support( 'post-formats', [
            'aside',
            'gallery',
            'link',
            'image',
            'quote',
            'status',
            'video',
            'audio',
            'chat'
        ] );
    }
}

CustomArguments.php

<?php
/**
 * @package ivana
 */

namespace Ivana\Setup;

class CustomArguments
{
    private $custom_arguments = [];

    public function start()
    {
        $this->custom_header_arguments();
        $this->custom_background_arguments();
        $this->custom_logo_arguments();

        return $this->custom_arguments;
    }

    private function custom_header_arguments()
    {
        $this->custom_arguments['header'] = [
            'default-image' => '',
            'default-text-color' => '000',
            'width' => 1000,
            'height' => 250,
            'flex-width' => true,
            'flex-height' => true,
            'wp-head-callback' => [ $this, 'site_branding_style' ]
        ];
    }

    private function custom_background_arguments()
    {
        $this->custom_arguments['background'] = [
            'default-color' => 'fff',
            'default-image' => ''
        ];
    }

    private function custom_logo_arguments()
    {
        $this->custom_arguments['logo'] = [
            'height' => 250,
            'width' => 250,
            'flex-height' => true,
            'flex-width' => true
        ];
    }

    public function site_branding_style()
    { ?>
        <style type="text/css">
            .site-title,
            .site-description {
                position: absolute;
                clip: rect(1px, 1px, 1px, 1px);
            }
        </style>
    <?php
    }
}

无论如何,我调试的方法是开始注释掉行或整个文件并重新加载媒体库。当我注释掉安装程序中的所有内容时,图像已正确加载,因此我开始注释单个行或函数,直到发现问题为止。