Of course! The flag attribute in DedeCMS's {dede:arclist} tag is a very powerful and frequently used feature. It allows you to easily fetch and display articles that have special statuses or properties, without needing to write complex SQL queries.

Let's break down everything you need to know about the flag attribute.
What is the flag Attribute?
The flag attribute is a parameter for the {dede:arclist} tag that lets you filter articles based on one or more predefined "flags" or "attributes" set in the DedeCMS后台 (Backend). These flags are stored in the flag field of the dede_archives table.
Common flag Values and Their Meanings
Here is a list of the most common flags you will use. You can often combine them.
| Flag Value | Description | Corresponding Backend Setting |
|---|---|---|
c |
Recommended / Featured | 推荐 |
h |
Headline / Headline News | 头条 |
p |
Picture / Article with a thumbnail | 图文 |
a |
Announcement / Important Notice | 跳转 |
s |
Special / Special Topic | 专题 |
j |
Jump / External Link | 跳转 (often used with a) |
How to Use the flag Attribute
The syntax is simple: you just add flag='your_flag_value' to the {dede:arclist} tag.

Using a Single Flag
To get articles with only one specific flag, use the single letter.
Example: Display only Recommended Articles (c)
{dede:arclist flag='c' titlelen='30' row='10'}
<li>
<a href="[field:arcurl/]">[field:title/]</a>
<span>[field:pubdate function="MyDate('Y-m-d',@me)"/]</span>
</li>
{/dede:arclist}
This will list the 10 most recent articles that have been marked as "推荐" (Recommended) in the backend.
Example: Display only Headline News (h)

{dede:arclist flag='h' titlelen='50' row='5'}
<h2><a href="[field:arcurl/]">[field:title/]</a></h2>
<p>[field:description function='cn_substr(@me, 100)'/]...</p>
{/dede:arclist}
This will list the 5 most recent articles marked as "头条" (Headline).
Combining Multiple Flags (Using )
This is where the flag attribute becomes extremely useful. You can combine multiple flags using the pipe character to get articles that have any of the specified flags.
Example: Display articles that are either Recommended (c) OR Headlines (h)
{dede:arclist flag='c|h' titlelen='30' row='10'}
<li>
<a href="[field:arcurl/]">[field:title/]</a>
</li>
{/dede:arclist}
This will fetch articles that are either recommended, or are headlines, or both.
Excluding Flags (Using )
You can also use the exclamation mark to exclude articles with a specific flag. This is useful for getting "all articles except those that are headlines."
Example: Display all articles EXCEPT Headlines (h)
{dede:arclist flag='!h' titlelen='30' row='10'}
<li>
<a href="[field:arcurl/]">[field:title/]</a>
</li>
{/dede:arclist}
Example: Display Recommended articles (c) but NOT Headlines (h)
{dede:arclist flag='c,!h' titlelen='30' row='10'}
<li>
<a href="[field:arcurl/]">[field:title/]</a>
</li>
{/dede:arclist}
This will get articles marked as "推荐" but will exclude any of those that are also marked as "头条".
Practical Examples in Website Layouts
Example 1: A Featured News Section
A common design is to have a large, prominent "Featured" section at the top of the homepage, followed by regular articles.
<!-- Featured Section: Get articles that are both Headline AND Recommended -->
<div class="featured-section">
{dede:arclist flag='h|c' titlelen='50' row='1'}
<h1><a href="[field:arcurl/]">[field:title/]</a></h1>
<img src="[field:litpic/]" alt="[field:title/]">
<p>[field:description function='cn_substr(@me, 200)'/]...</p>
{/dede:arclist}
</div>
<!-- Regular News Section: Get all articles except the featured ones -->
<div class="news-list">
<h2>Latest News</h2>
{dede:arclist flag='!h' titlelen='30' row='10'}
<li><span class="date">[field:pubdate function="MyDate('m-d',@me)"/]</span><a href="[field:arcurl/]">[field:title/]</a></li>
{/dede:arclist}
</div>
Example 2: A Special Topic Carousel
You might have a carousel for "Special Topics."
<div class="special-topic-carousel">
{dede:arclist flag='s' titlelen='40' row='5'}
<div class="slide">
<img src="[field:litpic/]" alt="[field:title/]">
<h3><a href="[field:arcurl/]">[field:title/]</a></h3>
</div>
{/dede:arclist}
</div>
Important Considerations
-
How to Set Flags in the Backend:
- Go to the DedeCMS backend.
- Navigate to "Content" -> "Add Article" or "Edit Article".
- On the article editing page, look for the "选项" (Options) or "属性" (Attributes) section.
- You will see checkboxes for "头条", "推荐", "幻灯", "特荐", "跳转", etc. Checking these boxes sets the corresponding flags for that article.
-
Performance:
- Using
flagis generally efficient as it leverages the database index on theflagfield. - However, combining too many flags or using very complex combinations (especially with ) on large websites can have a minor performance impact. For most sites, this is not a concern.
- Using
-
Case Sensitivity:
- The flag values (
c,h,p, etc.) are case-sensitive. Always use lowercase.
- The flag values (
Summary Table
| Your Goal | flag Attribute |
Explanation |
|---|---|---|
| Get only Recommended articles | flag='c' |
Fetches articles with the c flag. |
| Get Headlines or Recommended | flag='h\|c' |
Fetches articles with h OR c flags. |
| Get all articles except Headlines | flag='!h' |
Fetches all articles that do NOT have the h flag. |
| Get Recommended but not Headlines | flag='c\,!h' |
Fetches articles with c flag, but excludes those that also have h. |
| Get Special Topics | flag='s' |
Fetches articles marked as "专题". |
Mastering the flag attribute is key to efficiently managing and displaying different types of content on your DedeCMS website.
