Intereting Posts
Где я могу найти код, как WordPress анализирует сообщение? Не удается получить доступ к 2-й странице (под) панели WordPress Multisite WP_editor не применяет wpautop к содержимому одной строки Как заставить WordPress размещать домашнюю страницу на другом URL-адресе? Какой смысл использовать шаблон front-page.php? Скрыть текст, если флажок установлен в customizer? Внедрение внешнего API в WordPress Как получить доступ к профилю Могут ли добавляться /% year% /% monthnum% /% day% / struct tags в постоянные константы пользовательских сообщений? Использование «->» на странице для запроса $ wpdb дает ошибку будет ли post_id когда-либо изменяться? Можно ли безопасно использовать post_id для пользовательских запросов? Приоритет «хук» wp_enqueue_scripts не влияет Невозможно вытащить сообщения из настраиваемого типа сообщений на основе пользовательской таксономии CPT Изменить тему php для включения определенной категории в заголовок Как разрешить пользователям сортировать сообщения?

Создание плагина в тему

Во-первых, я знаю, что это «плохая» практика по нескольким причинам, но по причинам, по которым я не буду тратить время на то, что мне нужно делать.

Используя довольно простой плагин, я попытался скопировать его в functions.php и обновить пути и зависимости файлов, но у меня проблемы.

Файл плагина выглядит так:

$plugin_headers = get_file_data( __FILE__, array( 'Version' => 'Version', 'Name' => 'Plugin Name' ) ); /** * We store our plugin data in the following global array. * $my_unique_name with your unique name */ global $my_unique_name; $my_unique_name = array(); $my_unique_name['version_key'] = strtolower( str_replace( ' ', '_', $plugin_headers['Name'] ) ) . '_version'; $my_unique_name['version_value'] = $plugin_headers['Version']; /** * When the user activates the plugin we add the version number to the * options table as "my_plugin_name_version" only if this is a newer version. */ function inline_comments_acitvation(){ global $my_unique_name; if ( get_option( $my_unique_name['version_key'] ) && get_option( $my_unique_name['version_key'] ) > $my_unique_name['version_value'] ) return; update_option( $my_unique_name['version_key'], $my_unique_name['version_value'] ); } register_activation_hook( __FILE__, 'inline_comments_acitvation' ); /** * Delete our version number from the database when the plugin is activated. */ function inline_comments_deactivate(){ global $my_unique_name; delete_option( $my_unique_name['version_key'] ); } register_deactivation_hook( __FILE__, 'inline_comments_deactivate' ); if ( is_admin() ) require_once plugin_dir_path( __FILE__ ) . 'admin/admin-tags.php'; /** * Theme only functions */ require_once plugin_dir_path( __FILE__ ) . 'inc/template-tags.php'; function inline_comments_enqueue_scripts(){ $plugin_headers = get_file_data( __FILE__, array( 'Version' => 'Version', 'Name' => 'Original Plugin Name' ) ); $clean_name = strtolower( str_replace( ' ', '-', $plugin_headers['Name'] ) ); wp_register_style( $clean_name . '-style', plugin_dir_url( __FILE__ ) . 'inc/css/style.css' ); wp_register_script( 'textarea_auto_expand-script', plugin_dir_url( __FILE__ ) . 'vendor/textarea-auto-expand/jquery.textarea_auto_expand.js' ); wp_register_script( $clean_name . '-script', plugin_dir_url( __FILE__ ) . 'inc/js/script.js', array('jquery', 'textarea_auto_expand-script') ); } add_action('wp_enqueue_scripts', 'inline_comments_enqueue_scripts', 2); 

После перемещения плагина в папку темы я сделал следующее: я удалил бессмысленные части и в моих functions.php. Я загружаю основной скрипт.js (он загружается) и css, вот так.

 function inline_comments_enqueue_scripts(){ if ( is_singular() || is_page() ) { wp_enqueue_style( 'inline-style', get_template_directory_uri() . '/css/inline-style.css', '10000', 'all' ); wp_enqueue_script( 'inline-script', get_template_directory_uri() . '/js/inline-script.js', array( 'jquery' ), MEDIUM_VERSION); } } add_action('wp_enqueue_scripts', 'inline_comments_enqueue_scripts', 2); 

Итак, наш скрипт загружается с помощью нашего css.

Проблема заключается в основной части плагина, который содержит шаблоны, функции и вызовы ajax, которые я не могу загрузить.

Эта часть: – require_once plugin_dir_path( __FILE__ ) . 'inc/template-tags.php'; require_once plugin_dir_path( __FILE__ ) . 'inc/template-tags.php';

Я пробовал вставить этот файл в functions.php, и ничего не происходит, он просто не работает.

Вероятно, что-то делает глупую ошибку (кроме создания плагина в тему, хех).

Solutions Collecting From Web of "Создание плагина в тему"

Просто потому, что вы думаете, что вам нужно это делать, это не устраняет тот факт, что это очень неумно это делать. Код плагина построен для использования в качестве плагина, а не как темы, и, хотя вы можете копировать части кода и использовать их в теме, не может быть простого способа убедиться, что никакой зависимости не осталось в код.

Самый простой способ сделать это – проверить, активен ли плагин и принудительно активировать его, если это не так (и вы не можете доверять своему клиенту, чтобы он не деактивировал его).

Я делаю некоторое краткое предположение, основанное на том, как вы набрали свой вопрос.

"After moving the plugin to the theme folder"

Это означает, что вы wp-content/themes/THEME_FOLDER плагин из каталога плагинов к вашему wp-content/themes/THEME_FOLDER . Если это так, то вызов plugin_dir_path( __FILE__ ) не удастся найти ваш файл.

Вам нужно будет использовать get_template_directory_uri() или что-то еще.

Ознакомьтесь с Кодексом, чтобы лучше понять эту функцию.

Если я ошибаюсь в своих предположениях, пожалуйста, сообщите мне, поскольку я могу правильно решить проблему с дополнительной информацией.