URLs relativas y ocultar /wp-content/themes/ en WordPress

19 dic 2012, 15:04:12
Vistas: 15.9K
Votos: 5

En mi header y otras secciones me gustaría usar

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

Manteniendo la estructura de carpetas del tema por defecto en el servidor como se muestra a continuación

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

El archivo necesita ser accesible vía navegador/código fuente HTML cuando sea necesario, ocultando /wp-content/themes/theme-name

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

Esto también es aplicable a imágenes que pueda tener bajo /incs/images/imagname.jpg

He visto soluciones donde se define el directorio fuera de la carpeta del tema... pero necesito una solución que haga esto dentro.

¿Es esto posible?

Gracias

0
Todas las respuestas a la pregunta 5
0

La forma más fácil de mover tu carpeta de temas es solo mediante constantes; incluye la carpeta wp-content. Puedes definir una constante para la carpeta de plugins y la carpeta wp-content. Así tus plugins y temas estarán en URLs separadas, también en el código fuente del frontend.

Como este ejemplo para mis instalaciones de desarrollo:

define( 'WP_CONTENT_DIR',  dirname( __FILE__ ) . '/wp-content' );
define( 'WP_CONTENT_URL',  'http://' . $_SERVER['HTTP_HOST'] . '/wp-content' );
// Directorio personalizado para plugins
define( 'WP_PLUGIN_DIR',   dirname( __FILE__ ) . '/wp-plugins' );
define( 'WP_PLUGIN_URL',   'http://' . $_SERVER['HTTP_HOST'] . '/wp-plugins' );
// Directorio personalizado para mu-plugins 
define( 'WPMU_PLUGIN_DIR', dirname( __FILE__ ) . '/wpmu-plugins' );
define( 'WPMU_PLUGIN_URL', 'http://' . $_SERVER['HTTP_HOST'] . '/wpmu-plugins' );
19 dic 2012 15:13:33
0

Actualmente utilizo la técnica que describo en esta pregunta: Pasos para ocultar que un sitio utiliza WordPress.

Anteriormente, usaba el método del Tema Roots, que es lo que creo que estás buscando:

Esta publicación contiene información sobre cómo limpiar la salida del código de WordPress. Los métodos descritos a continuación no evitan la identificación real y no deben considerarse como una medida de seguridad.

Ten en cuenta que no funciona en Multisitio ni en Temas Hijos.


Reproduciré aquí la documentación que hice para usar el método Roots:

Modificando las reglas de reescritura en .htaccess

Gran parte del código proviene directamente del tema Roots:
https://gist.github.com/4336843 Espejo en PasteBin.
El array $roots_new_non_wp_rules debe adaptarse según corresponda.

Actualizar los enlaces permanentes

Ve a /wp-admin/options-permalink.php y haz clic en Guardar cambios.

Cargar scripts desde CDN y no desde /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' );
}

Busca en el tema todos los registros y colas de estilos y scripts.

style.css

  1. Crea un nuevo archivo dentro de la carpeta "/css" llamado "style.css"
  2. Abre el style.css del tema
  3. Selecciona todas las declaraciones debajo de la cabecera del archivo del tema
  4. Córtalas y pégalas en el archivo /css/style.css
  5. Guarda ambos

    En resumen: /your-theme/styles.css contendrá solo la información de la cabecera, y /your-theme/css/styles.css contendrá todos los estilos

    • Cambia todas las ocurrencias de url('fonts/ por url('../fonts/
    • Cambia todas las ocurrencias de images/ por ../images/

header.php

Cambia el enlace de la hoja de estilos de:

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

a:

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

Todos los archivos del tema

Busca:

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

y reemplaza con:

  • get_template_directory_uri()

Pruebas

No estoy seguro de otros navegadores, pero la Ventana de Actividad de Safari es perfecta para verificar todos los archivos cargados y sus URLs.

Dependiendo de la complejidad del tema, pueden ser necesarios pasos adicionales.

19 dic 2012 16:26:44
0

Creé el Roots Plug que tiene las mismas reglas de reescritura en el .htaccess que el Tema Roots. Pero estoy completamente de acuerdo con lo que @brasofolio dijo

19 dic 2012 16:44:34
1

Esto se puede lograr fácilmente usando el plugin 'hide my wp'. Por favor, cambia sus ajustes de enlaces permanentes y URLs como se muestra a continuación:

Cambiar la ruta del tema en Permalinks & urls a /incs Cambia la ruta del tema en Permalinks & urls a /incs.

Una vez que hayas cambiado estos ajustes, notarás que bloginfo('template_url') mostrará http://website.com/incs/ y por lo tanto

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

Referencia: http://howtomakewebsite.ws/wordpress-plugins/how-to-hide-wordpress/731/

18 feb 2014 19:36:04
Comentarios

¿Olvidaste mencionar que es un plugin de pago? :(

Yasser Shaikh Yasser Shaikh
30 oct 2017 12:14:32
1
-1

¿Por qué no usas bloginfo(); las funciones por defecto de WordPress?

<?php bloginfo( $show ); ?> 

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

más información http://codex.wordpress.org/Function_Reference/bloginfo

19 dic 2012 15:40:35
Comentarios

Quiere ocultar la salida de bloginfo('template_directory') - no está preguntando cómo usarlo

Zach Zach
19 dic 2012 16:51:32