Title: Script Logic
Author: Tahir Yasin
Published: <strong>2014 年 6 月 16 日</strong>
Last modified: 2014 年 7 月 10 日

---

搜尋外掛

![](https://ps.w.org/script-logic/assets/banner-772x250.png?rev=932845)

這個外掛**並未在最新的 3 個 WordPress 主要版本上進行測試**。開發者可能不再對這個
外掛進行維護或提供技術支援，並可能會與更新版本的 WordPress 產生使用上的相容性問題。

![](https://ps.w.org/script-logic/assets/icon-128x128.png?rev=1159173)

# Script Logic

 由 [Tahir Yasin](https://profiles.wordpress.org/tahiryasin/) 開發

[下載](https://downloads.wordpress.org/plugin/script-logic.0.3.zip)

 * [詳細資料](https://tw.wordpress.org/plugins/script-logic/#description)
 * [使用者評論](https://tw.wordpress.org/plugins/script-logic/#reviews)
 *  [安裝方式](https://tw.wordpress.org/plugins/script-logic/#installation)
 * [開發資訊](https://tw.wordpress.org/plugins/script-logic/#developers)

 [技術支援](https://wordpress.org/support/plugin/script-logic/)

## 外掛說明

This plugin lists all JavaScripts and Style sheets with a control field that lets
you control CSS & JavaScript files to include only on the pages where you actually
need them. The text field lets you use WP’s [Conditional Tags](https://codex.wordpress.org/Conditional_Tags),
or any general PHP code.

NOTE: The script logic you introduce is evaluated directly. Anyone who has permission
to manage options will have the right to add any code, including malicious and possibly
destructive code. There is an optional filter ‘script_logic_eval_override’ which
you can use to bypass the EVAL with your own code if needed. (See [Other Notes](https://tw.wordpress.org/plugins/script-logic/other_notes/?output_format=md)).

### Writing Logic Code

The text in the ‘Logic’ field can be full PHP code and should return ‘true’ when
you need the script to load. If there is no ‘return’ in the text, an implicit ‘return’
is added to the start and a ‘;’ is added on the end. (This is just to make single
statements like is_home() more convenient.)

#### The Basics

Make good use of [WP’s own conditional tags](https://codex.wordpress.org/Conditional_Tags).
You can vary and combine code using:

 * `!` (NOT) to **reverse** the logic, eg `!is_home()` is TRUE when this is NOT 
   the home page.
 * `||` (OR) to **combine** conditions. `X OR Y` is TRUE when either X is true or
   Y is true.
 * `&&` (AND) to make conditions **more specific**. `X AND Y` is TRUE when both 
   X is true and Y is true.

There are lots of great code examples on the WP forums, and on WP sites across the
net. But the WP Codex is also full of good examples to adapt, such as [Test if post is in a descendent category](https://codex.wordpress.org/Template_Tags/in_category#Testing_if_a_post_is_in_a_descendant_category).

#### Examples

 * `is_home()` — just the main blog page
 * `!is_page('about')` — everywhere EXCEPT this specific WP ‘page’
 * `!is_user_logged_in()` — shown when a user is not logged in
 * `is_category(array(5,9,10,11))` — category page of one of the given category 
   IDs
 * `is_single() && in_category('baked-goods')` — single post that’s in the category
   with this slug
 * `strpos($_SERVER['HTTP_REFERER'], "google.com")!=false` — script to load when
   clicked through from a google search
 * `is_category() && in_array($cat, get_term_children( 5, 'category'))` — category
   page that’s a descendent of category 5
 * `global $post; return (in_array(77,get_post_ancestors($post)));` — WP page that
   is a child of page 77
 * `global $post; return (is_page('home') || ($post->post_parent=="13"));` — home
   page OR the page that’s a child of page 13

Note the extra ‘;’ on the end where there is an explicit ‘return’.

### The ‘script_logic_eval_override’ filter

Before the Script Logic code is evaluated for each script, the text of the Script
Logic code is passed through this filter. If the filter returns a BOOLEAN result,
this is used instead to determine if the script should load. Return TRUE to load.

## 螢幕擷圖

[⌊screenshot-1.png⌉⌊screenshot-1.png⌉[

screenshot-1.png

[⌊screenshot-2.png⌉⌊screenshot-2.png⌉[

screenshot-2.png

## 安裝方式

 1. Upload plugin to the `/wp-content/plugins/` directory
 2. Activate the plugin through the ‘Plugins’ menu in WordPress
 3. Configure the plugin at `Settings -> Script Logic`
 4. That’s it.

#### Configuration

On plugin configuration page you see all script and CSS files with a logic field.
Lets suppose you are using Contact Form 7 plugin. You created a page Contact Us (
slug = contact-us) and want to include Contact Form 7 scripts only on this page.
Find the Contact Form 7 scripts on plugin’s configuration page (they have handle
= contact-form-7) and put `is_page('contact-us')` in logic field

## 常見問題集

  Why isn’t it working?

Try switching to the WP default theme – if the problem goes away, there is something
specific to your theme that may be interfering with the WP conditional tags.

Most probably the logic text on one of your scripts is invalid PHP

  How do I load a certain script X on just my ‘home’ page? (Or on every page except
that.)

There is some confusion between the [Main Page and the front page](https://codex.wordpress.org/Conditional_Tags#The_Main_Page).
If you want a script on your ‘front page’ whether that is a static page or a set
of posts, use is_front_page(). If it is a page using is_page(x) does not work. If
your ‘front page’ is a page and not a series of posts, you can still use is_home()
to include scripts on that main posts page (as defined in Admin > Settings > Reading).

## 使用者評論

這個外掛目前沒有任何使用者評論。

## 參與者及開發者

以下人員參與了開源軟體〈Script Logic〉的開發相關工作。

參與者

 *   [ Tahir Yasin ](https://profiles.wordpress.org/tahiryasin/)

[將〈Script Logic〉外掛本地化為台灣繁體中文版](https://translate.wordpress.org/projects/wp-plugins/script-logic)

### 對開發相關資訊感興趣？

任何人均可[瀏覽程式碼](https://plugins.trac.wordpress.org/browser/script-logic/)、
查看 [SVN 存放庫](https://plugins.svn.wordpress.org/script-logic/)，或透過 [RSS](https://plugins.trac.wordpress.org/log/script-logic/?limit=100&mode=stop_on_copy&format=rss)
訂閱[開發記錄](https://plugins.trac.wordpress.org/log/script-logic/)。

## 變更記錄

#### 0.1

 * First stable release.

## 中繼資料

 *  版本 **0.3**
 *  最後更新 **12 年前**
 *  啟用安裝數 **10+**
 *  WordPress 版本需求 ** 2.8 或更新版本 **
 *  已測試相容的 WordPress 版本 **3.9.40**
 *  語言
 * [English (US)](https://wordpress.org/plugins/script-logic/)
 * 標籤:
 * [admin](https://tw.wordpress.org/plugins/tags/admin/)[conditional-tags](https://tw.wordpress.org/plugins/tags/conditional-tags/)
   [script](https://tw.wordpress.org/plugins/tags/script/)[speed](https://tw.wordpress.org/plugins/tags/speed/)
   [style](https://tw.wordpress.org/plugins/tags/style/)
 *  [進階檢視](https://tw.wordpress.org/plugins/script-logic/advanced/)

## 評分

 3 星，滿分為 5 星

 *  [  1 個 5 星使用者評論     ](https://wordpress.org/support/plugin/script-logic/reviews/?filter=5)
 *  [  0 個 4 星使用者評論     ](https://wordpress.org/support/plugin/script-logic/reviews/?filter=4)
 *  [  0 個 3 星使用者評論     ](https://wordpress.org/support/plugin/script-logic/reviews/?filter=3)
 *  [  0 個 2 星使用者評論     ](https://wordpress.org/support/plugin/script-logic/reviews/?filter=2)
 *  [  1 個 1 星使用者評論     ](https://wordpress.org/support/plugin/script-logic/reviews/?filter=1)

[Your review](https://wordpress.org/support/plugin/script-logic/reviews/#new-post)

[查看全部使用者評論](https://wordpress.org/support/plugin/script-logic/reviews/)

## 參與者

 *   [ Tahir Yasin ](https://profiles.wordpress.org/tahiryasin/)

## 技術支援

使用者可在技術支援論壇提出意見反應或使用問題。

 [檢視技術支援論壇](https://wordpress.org/support/plugin/script-logic/)

## 贊助

想要支援這個外掛的發展嗎？

 [ 贊助這個外掛 ](http://NA)