Относительные URL и скрытие /wp-content/themes/

19 дек. 2012 г., 15:04:12
Просмотры: 15.9K
Голосов: 5

В моем заголовке и других разделах я хотел бы использовать:

<script src="/incs/js/script.js"></script>

При этом сохраняя стандартную структуру папок темы на сервере:

/wp-content/themes/theme-name/incs/js/script.js

Файл должен быть доступен через браузер/исходный код HTML, но скрывать /wp-content/themes/theme-name

http://website.com/incs/js/script.js

Это также применимо к изображениям, которые могут находиться в /incs/images/imagname.jpg

Я видел решения, где определяют директорию вне папки темы... но мне нужно решение, которое работает внутри неё.

Возможно ли это?

Спасибо

0
Все ответы на вопрос 5
0

Самый простой способ переместить папку темы — только через константу; включите папку wp-content.

Вы можете задать константы для папки плагинов и папки wp-content. Тогда ваши плагины и темы будут находиться по отдельным URL, а также включаться в исходный код фронтенда.

Вот пример для моих dev-установок:

define( 'WP_CONTENT_DIR',  dirname( __FILE__ ) . '/wp-content' );
define( 'WP_CONTENT_URL',  'http://' . $_SERVER['HTTP_HOST'] . '/wp-content' );
// Кастомная директория плагинов
define( 'WP_PLUGIN_DIR',   dirname( __FILE__ ) . '/wp-plugins' );
define( 'WP_PLUGIN_URL',   'http://' . $_SERVER['HTTP_HOST'] . '/wp-plugins' );
// Кастомная директория must-use плагинов
define( 'WPMU_PLUGIN_DIR', dirname( __FILE__ ) . '/wpmu-plugins' );
define( 'WPMU_PLUGIN_URL', 'http://' . $_SERVER['HTTP_HOST'] . '/wpmu-plugins' );
19 дек. 2012 г. 15:13:33
0

В настоящее время я использую технику, описанную в этом вопросе: Какие шаги предпринять, чтобы скрыть факт использования WordPress на сайте?.

До этого я использовал метод темы Roots, который, как мне кажется, вы ищете:

Эта статья содержит информацию о том, как очистить вывод кода WordPress. Описанные ниже методы не предотвращают реальное фингерпринтинг и не должны рассматриваться как мера безопасности.

Обратите внимание, что этот метод не работает в Multisite или дочерних темах.


Я воспроизведу здесь документацию, которую сделал для использования метода Roots:

Изменение правил перезаписи в .htaccess

Большой фрагмент кода напрямую из темы Roots:
https://gist.github.com/4336843 PasteBin mirror.
Массив $roots_new_non_wp_rules необходимо адаптировать соответствующим образом.

Обновление постоянных ссылок

Перейдите в /wp-admin/options-permalink.php и нажмите Сохранить изменения.

Загрузка скриптов из CDN вместо /wp-includes/

add_action( 'wp_enqueue_scripts', 'wpse_76593_scripts_custom' );

function wpse_76593_scripts_custom() {
        wp_deregister_script('jquery');
        wp_register_script('jquery', 'https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js', false, '1.7.1', true);
        wp_enqueue_script( 'jquery' );
}

Проверьте тему на наличие всех регистраций и подключений стилей и скриптов.

style.css

  1. создайте новый файл в папке "/css" с именем "style.css"
  2. откройте файл style.css темы
  3. выделите все объявления ниже заголовка файла темы
  4. вырежьте и вставьте в файл /css/style.css
  5. сохраните оба файла вкратце: /ваша-тема/styles.css будет содержать только информацию заголовка, а /ваша-тема/css/styles.css будет содержать все стили

    • замените все вхождения url('fonts/ на url('../fonts/
    • замените все вхождения images/ на ../images/

header.php

Измените ссылку на таблицу стилей с

<link rel="stylesheet" type="text/css" media="all" href="<?php bloginfo( 'stylesheet_url' ); ?>" />

на

<link rel="stylesheet" type="text/css" media="all" href="<?php echo get_template_directory_uri(); ?>/css/style.css" /> 

Все файлы темы

Найдите:

  • get_bloginfo('template_url')
  • get_bloginfo('template_directory')

и замените на:

  • get_template_directory_uri()

Тестирование

Не уверен насчет других браузеров, но Окно активности Safari идеально подходит для проверки всех загружаемых файлов и их URL-адресов.

В зависимости от сложности темы могут потребоваться дополнительные шаги.

19 дек. 2012 г. 16:26:44
0

Я создал Roots Plug, который имеет те же правила перезаписи в .htaccess, что и Roots Theme. Но полностью согласен с тем, что сказал @brasofolio здесь

19 дек. 2012 г. 16:44:34
1

Это можно легко сделать с помощью плагина 'Hide My WP'. Пожалуйста, измените его настройки постоянных ссылок и URL, как показано ниже:

Измените путь к теме в разделе Постоянные ссылки & URL на /incs Измените путь к теме в разделе "Постоянные ссылки & URL" на /incs.

После изменения этих настроек вы заметите, что bloginfo('template_url') будет выводить http://website.com/incs/, и следовательно

 http://website.com/incs/js/script.js

Источник: http://howtomakewebsite.ws/wordpress-plugins/how-to-hide-wordpress/731/

18 февр. 2014 г. 19:36:04
Комментарии

Вы забыли упомянуть, что это платный плагин? :(

Yasser Shaikh Yasser Shaikh
30 окт. 2017 г. 12:14:32
1
-1

Почему вы не используете стандартные функции WordPress bloginfo()

<?php bloginfo( $show ); ?> 

<script src="<?php bloginfo('template_directory'); ?>/incs/js/script.js"></script>

подробнее http://codex.wordpress.org/Function_Reference/bloginfo

19 дек. 2012 г. 15:40:35
Комментарии

Он хочет скрыть вывод bloginfo('template_directory') - он спрашивает не о том, как его использовать

Zach Zach
19 дек. 2012 г. 16:51:32