URL-uri relative și ascunderea /wp-content/themes/

19 dec. 2012, 15:04:12
Vizualizări: 15.9K
Voturi: 5

în header și alte secțiuni aș dori să folosesc

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

În timp ce mențin structura implicită a folderului temei pe server ca mai jos

/wp-content/themes/nume-tema/incs/js/script.js

fișierul trebuie să fie accesibil prin browser/sursa html dacă este nevoie, astfel încât să ascundă /wp-content/themes/nume-tema

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

Aceasta este aplicabilă și imaginilor pe care le pot avea sub /incs/images/nume-imagine.jpg

Am văzut soluții în care se definește directorul în afara folderului temei... dar am nevoie de o soluție care să facă asta în interior.

Este posibil?

Mulțumesc

0
Toate răspunsurile la întrebare 5
0

Cea mai ușoară modalitate de a muta folderul temei este doar prin constantă; includeți folderul wp-content.

Puteți seta o constantă pentru folderul plugin-urilor și folderul wp-content. Astfel, plugin-urile și temele vor fi într-un URL separat, inclusiv în sursa frontend-ului.

Iată un exemplu pentru instalările mele de dezvoltare:

define( 'WP_CONTENT_DIR',  dirname( __FILE__ ) . '/wp-content' );
define( 'WP_CONTENT_URL',  'http://' . $_SERVER['HTTP_HOST'] . '/wp-content' );
// Director personalizat pentru plugin-uri
define( 'WP_PLUGIN_DIR',   dirname( __FILE__ ) . '/wp-plugins' );
define( 'WP_PLUGIN_URL',   'http://' . $_SERVER['HTTP_HOST'] . '/wp-plugins' );
// Director personalizat pentru plugin-uri mu
define( 'WPMU_PLUGIN_DIR', dirname( __FILE__ ) . '/wpmu-plugins' );
define( 'WPMU_PLUGIN_URL', 'http://' . $_SERVER['HTTP_HOST'] . '/wpmu-plugins' );
19 dec. 2012 15:13:33
0

În prezent folosesc tehnica pe care o descriu în această întrebare: Pași de urmat pentru a ascunde faptul că un site folosește WordPress?.

Înainte de asta, am folosit metoda Roots Theme, care cred că este ceea ce cauți:

Acest post conține informații despre cum să cureți codul generat de WordPress. Metodele descrise mai jos nu previn amprentarea reală și nu ar trebui privite ca o măsură de securitate.

Reține că nu funcționează în Multisite sau în Teme Copil.


Voi reproduce aici documentația pe care am făcut-o pentru utilizarea metodei Roots:

Modificarea regulilor de rescriere .htaccess

Fragment mare de cod preluat direct din tema Roots:
https://gist.github.com/4336843 PasteBin mirror.
Array-ul $roots_new_non_wp_rules trebuie adaptat în consecință.

Reîmprospătarea legăturilor permanente

Accesează /wp-admin/options-permalink.php și dă click pe Salvează modificările.

Încărcarea scripturilor din CDN și nu din /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' );
}

Caută în temă toate înregistrările și încărcările de stiluri și scripturi.

style.css

  1. creează un fișier nou în folderul "/css" numit "style.css"
  2. deschide style.css-ul temei
  3. selectează toate declarațiile de sub antetul fișierului temă
  4. taie și lipește în fișierul /css/style.css
  5. salvează ambele pe scurt: /your-theme/styles.css va conține doar informațiile din antet, iar /your-theme/css/styles.css va conține toate stilurile

    • schimbă toate aparițiile lui url('fonts/ cu url('../fonts/
    • schimbă toate aparițiile lui images/ cu ../images/

header.php

Schimbă legătura către fișierul de stiluri din

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

în

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

Toate fișierele temei

Caută:

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

și înlocuiește cu:

  • get_template_directory_uri()

Testare

Nu sunt sigur despre alte browsere, dar Fereastra de Activitate Safari este perfectă pentru a verifica toate fișierele încărcate și URL-urile lor.

În funcție de complexitatea temei, pot fi necesari pași suplimentari.

19 dec. 2012 16:26:44
0

Am creat Roots Plug care are aceleași reguli de rescriere în .htaccess ca și Tema Roots. Dar sunt complet de acord cu ce a spus @brasofolio aici

19 dec. 2012 16:44:34
1

Aceasta poate fi realizată cu ușurință folosind plugin-ul 'hide my wp'. Vă rugăm să modificați setările de legături permanente și URL-uri conform imaginii de mai jos:

Schimbați calea temei sub Legături permanente & URL-uri la /incs Schimbați calea temei sub Legături permanente & URL-uri la /incs.

După ce ați modificat aceste setări, veți observa că bloginfo('template_url') va afișa http://website.com/incs/ și astfel

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

Referință: http://howtomakewebsite.ws/wordpress-plugins/how-to-hide-wordpress/731/

18 feb. 2014 19:36:04
Comentarii

Ați uitat să menționați că este un plugin plătit? :(

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

De ce nu utilizați funcțiile implicite din WordPress precum bloginfo();

<?php bloginfo( $show ); ?> 

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

mai multe informații http://codex.wordpress.org/Function_Reference/bloginfo

19 dec. 2012 15:40:35
Comentarii

El vrea să ascundă rezultatul funcției bloginfo('template_directory') - nu întreabă cum să o folosească

Zach Zach
19 dec. 2012 16:51:32