رفتن به مطلب

جلوگیری از اجرای یک کد خاص در تمام فایل‌ها


Pouya

پست های پیشنهاد شده

سلام. چطوری میشه که از اجرای یک کد جاوا اسکریپت که در چند فایل (مثلا در فایل‌های ایندکس، سینگل، سایدبار و آرشیو)، عینا تکرار شده، (بدون حذف کد) جلوگیری کرد؟

کد فانکشنی برای این کار وجود داره؟

یا از طریق شرط (if) چطور میشه؟

لینک به ارسال

سلام

تو شرایط خاص و تحت کنترل می خوای غیرفعال کنی؟ بیشتر توضیح بده.

لینک به ارسال

سلام

تو شرایط خاص و تحت کنترل می خوای غیرفعال کنی؟ بیشتر توضیح بده.

نمیدونم دیگه چطوری توضیح بدم! :)

مثلا این کد جاوا اسکریپته:


<script type="text/javascript">test</script>

میخوام یه کدی در اول قالب بذارم (یا فانکشنی که همون اول قالب اجرا بشه) که وقتی نوبت به لود این کد js میرسه، انگار این کد وجود نداره (یا بجاش یه کد دیگه لود بشه). چنین کدی هست؟

لینک به ارسال

سلام . چندین راه برای جلوگیری از اجرای یک کد جاوا وجود داره . اما ساده ترین راهی که میتونم توی وردپرس بهتون بگم این است که کد را dequeue کنید.

اگر شما می دونید که کدتون در کجای قالب هست نگاه کنید ببینید در کجا و با چه نامی enqueue شده است (توضیحات تابع enqueue رو با سرچ کردن در سایت وردپرس بخونید و به اولویت بندی برای بارگزاری یا همان enqueue کردن ،یعنی priority هم دقت کنید ) .

مثال :

کد زیر فایل script.js را با نام pg-script-name بارگزاری می کند.


<?php
add_action('wp_enqueue_scripts', 'pg_scripts');
function pg_scripts(){
wp_enqueue_script( 'pg-script-name', get_template_directory_uri() . '/script.js');
}
?>

حالا ما با قرار دادن کد زیر بعد از تابع بالا از بارگزاری اون می تونیم جلوگیری کنیم.


<?php
add_action('wp_enqueue_scripts', 'pg_dequeue_scripts');
function pg_dequeue_scripts(){
wp_dequeue_script( 'pg-script-name');
}
?>

در کد دوم جایی که تابع add_action فراخوانی شده شما می تونید با دستورات شرطی تعیین کنید که این فراخوانی چه مواقعی اجرا بشه یک چیزی مثل کد زیر:


<?php
if(is_archive() || is_home()){
add_action('wp_enqueue_scripts', 'pg_dequeue_scripts');
}
?>

حالا اگر کد جاوای شما در داخل یک فایل مثلا فایل header.php مستقیما نوشته شده شما قبل از این کد یک دستور if مثل کد آخری که نوشتم رو قبلش ایجاد کنید و اون رو بعد از اتمام دستور ببندید.

برای این که لیست کاملی از توابعی مثل is_home و is_single و غیره رو پیدا کنید هر دوی اونها را در گوگل بنویسید و جستجویی انجام بدید ، خیلی از صفحات رو میشه با این روش حذف کرد.

این رو هم بگم که اگه برعکسش رو می خواهید مثلا توی دو صفحه اجرا نشه بقیه ی جاها اجرا بشه قبلش یک نات بزارید ' ! ' .

مثلا به این صورت :


<?php
if(!is_single());
?>

امیدوارم موفق باشید.

ویرایش شده توسط parsigroup
لینک به ارسال

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...