it-swarm.asia

تغيير مسار عنوان url المرئي إلى ملفات css & js

هل يعرف أحد كيف يمكنني أن أتحول تلقائيًا:

http://www.example.com/wp-content/themes/theme-name/css/stylesheeet.css

إلى

http://www.example.com/css/stylesheet.css

بطبيعة الحال ، يمكنني فقط إنشاء المجلد القابل للتطبيق داخل جذر الموقع ، ووضع الملفات هناك والإشارة إليها فقط ، ولكن هذا ما أنا عليه الآن.

أنا أبحث عن طريقة للاحتفاظ بجميع ملفات CSS و JavaScript في مجلد السمات ، لكن أود أن يعرض WordPress مسار url الموضح أعلاه إذا عرضت مصدر الصفحة.

في وضع مثالي ، أبحث عن جزء من التعليمات البرمجية يمكن إضافته تلقائيًا لكل الملفات المشار إليها في مجلد السمة الخاص بي بما في ذلك أي صور.

4
NetConstructor.com

مرتجلاً أعتقد أنك ستحتاج إلى شيئين:

أولاً ، إعادة كتابة قاعدة في ملف htaccess الخاص بك مثل:

RewriteEngine On
RewriteBase /
RewriteRule ^css/(.*) /wp-content/themes/theme-name/css/$1 [L]
RewriteRule ^js/(.*) /wp-content/themes/theme-name/js/$1 [L]

ثانياً ، أضف مرشحًا إلى وظائف السمة الخاصة بك. مثل:

function change_css_js_url($content) {
    $current_path = '/wp-content/themes/theme-name/';
    $new_path = '/'; // No need to add /css or /js here since you're mapping the subdirectories 1-to-1
    $content = str_replace($current_path, $new_path, $content);
    return $content;
}
add_filter('bloginfo_url', 'change_css_js_url');
add_filter('bloginfo', 'change_css_js_url');

يحذر الزوجان: - إذا كان المكون الإضافي أو أي شيء لا يستخدم bloginfo () أو get_bloginfo () فلن يقوم بتشغيل المرشح. يمكنك الالتفاف على هذا من خلال ربط وظيفتك في المرشحات الأخرى حسب الحاجة. - تستخدم بعض الإضافات/السمات/إلخ مسارات مشفرة. ليس هناك الكثير الذي يمكنك القيام به حيال ذلك باستثناء تعديل التعليمات البرمجية لاستخدام إحدى وظائف WP للحصول على المسار.

إليك نفس المثال باستخدام السمة عشرون (لا توجد أدلة فرعية لـ css/js ، لكن الفكرة هي نفسها.)

. htaccess

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^twentyten/(.*) /wp-content/themes/twentyten/$1 [L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

jobs.php

function change_css_js_url($content) {
    $current_path = '/wp-content/themes/';
    $new_path = '/'; // No need to add /css or /js here since you're mapping the subdirectories 1-to-1
    $content = str_replace($current_path, $new_path, $content);
    return $content;
}
add_filter('bloginfo_url', 'change_css_js_url');
add_filter('bloginfo', 'change_css_js_url');
2
gabrielk

في وضع مثالي ، أبحث عن جزء من التعليمات البرمجية يمكن إضافته تلقائيًا> يقوم بذلك لجميع الملفات المشار إليها في مجلد السمة الخاص بي بما في ذلك أي صور.

سوف أقترح حلاً بديلاً يحل المشكلة.

قم بإنشاء رابط رمزي من wp-content/theme/your-theme إلى الدليل الجذر/css

لإنشاء رابط رمزي في Linux ، استخدم الأمر #ln -s. فمثلا:

#ln -s /home/user-name/public_html/wp-content/themes/your_theme_name /home/user-name/public_html/css

الآن يمكن الوصول إلى أي ملف في http://example.com/wp-content/themes/your_theme_name/ باستخدام عنوان url:

http://example.com/css/

لكي يعمل هذا ، يجب أن تسمح بتوجيهات FollowSymLinks في ملف httpd.conf الخاص بك. يمكنك أيضًا وضعه في ملف htaccess والذي سيتجاوز الإعداد في httpd.conf

في httpd.conf سيكون الإعداد:

<Directory />
Options Indexes FollowSymLinks
</Directory>

قبل سريان التغيير ، سيتعين عليك إعادة تشغيل Apache:

#/etc/init.d/Apache2 restart

يمكنك قراءة المزيد حول SymLinks في Maxi-Pedia وفي مستندات Apache

2
Chris_O