Загрузка изображения в настраиваемый плагин WordPress

Я создал свой собственный плагин и хочу добавить собственный логотип, но каким-то образом он продолжает перенаправлять меня в неправильный каталог, это ошибка, которую я получаю:

GET http://localhost/logo.png 404 (Not Found)

Вот что я пробовал до сих пор:

$plugin_dir = str_replace( $base_url, ABSPATH, $plugins_url );
$plugin_dir = plugins_url();
$plugin_dir = plugin_dir_path( __FILE__ );
$plugin_dir = WP_CONTENT_DIR . '/plugins';
$plugin_dir = plugins_url( '/', __FILE__ );

Вот мое действие добавления:

    function kalbos_modifymenu() {

        add_menu_page('Kalbos', //page title
            'Kalbos', //menu title
            'manage_options', //capabilities
            'kalbos_list', //menu slug
            'kalbos_list', //function
            $plugin_dir . 'logo.png',
            '5'
            );
}
    add_action('admin_menu','kalbos_modifymenu');

Однако значок работает, когда я перемещаю свой логотип в каталог wp-admin / logo.png, потому что это то место, куда идет мой путь к логотипу, даже если я установил его, перейти в папку моего плагина

Пожалуйста, проверьте мой ответ, работает он или нет.

Virb 17.04.2018 11:21

это не сработало, все еще говорит, что мой каталог с файлом логотипа - localhost / logo.png

David 17.04.2018 11:42

Какой путь у вашего $plugin_dir? И какой из них вы используете $plugin_dir?

Virb 17.04.2018 11:44

это должен быть wp-content / plugins / my-plugin / bit, мой файл png просто идет localhost / logo.png

David 17.04.2018 11:46

Так должно быть или это так?

Virb 17.04.2018 11:47

ну это не по какой-то причине

David 17.04.2018 11:48

Вам не хватает закрывающей скобки } в function kalbos_modifymenu()

brasofilo 17.04.2018 16:18

@brasofilo да, я скопировал неправильно, у меня есть закрывающая скобка

David 18.04.2018 07:35
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
8
67
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Попробуйте добавить к /plugins другую косую черту, например: /plugins/, а также закройте кавычки в той же строке. На данный момент он у вас как 'plugins;, но правильный - '/plugins';.

Затем вы должны проверить, не что-то не так с декларациями $plugin_dir. Но имейте в виду, что ваш синтаксис в /plugins был ложным.

Alcaeus D 17.04.2018 11:17
Ответ принят как подходящий

plugins_url будет (выделено мной):

Retrieves the absolute URL to the plugins or mu-plugins directory (without the trailing slash) or, when using the $path argument, to a specific file under that directory. You can either specify the $path argument as a hardcoded path relative to the plugins or mu-plugins directory, or conveniently pass __FILE__ as the second argument to make the $path relative to the parent directory of the current PHP script file.

Итак, следующее будет точно указывать на ваш каталог плагинов с участием конечной косой чертой:

$plugin_dir = plugins_url( '/', __FILE__ );
// results in http://localhost/wp-content/plugins/YOUR_PLUGIN/

И чтобы настроить таргетинг на логотип, используйте:

$plugin_dir . 'logo.png'

Другой пример, чтобы сделать ярлык для вашей папки изображений:

$plugin_img = plugins_url( '/images/', __FILE__ );
// results in http://localhost/wp-content/plugins/YOUR_PLUGIN/images/

В консоли я получаю ту же ошибку 404 not found. И когда я просматриваю изображение, каталог: локальный / wp-admin / logo.png

David 18.04.2018 10:28

Я игнорирую $plugin_dir внутри функции

brasofilo 18.04.2018 10:32

Другие вопросы по теме