List Categories
Retrieves all categories from WordPress including their metadata, hierarchy, and post counts.
Common Properties
- Name - The custom name of the node.
- Color - The custom color of the node.
- Delay Before (sec) - Waits in seconds before executing the node.
- Delay After (sec) - Waits in seconds after executing node.
- Continue On Error - Automation will continue regardless of any error. The default value is false.
If the ContinueOnError property is true, no error is caught when the project is executed, even if a Catch node is used.
Inputs
- Client Id - The client ID from the Connect node (optional if using direct credentials).
Options
- Site URL - (Optional) WordPress site URL. Use this if you want to authenticate directly without a Connect node.
- Credentials - (Optional) WordPress username and application password. Use this if you want to authenticate directly without a Connect node.
Output
- Category List - An array of all category objects from WordPress.
How It Works
The List Categories node retrieves all categories from WordPress using the WordPress REST API.
When executed, the node:
- Retrieves the authentication (either from Client Id or direct credentials)
- Sends a GET request to
/wp-json/wp/v2/categories/endpoint - Returns an array of all category objects with their complete metadata
Category Object Structure
Each category in the returned Category List contains:
- id - Unique category ID
- count - Number of posts in this category
- description - Category description
- link - Public URL to the category archive
- name - Category display name
- slug - URL-friendly category identifier
- taxonomy - Always "category" for categories
- parent - Parent category ID (0 for top-level categories)
- meta - Custom meta fields
Authentication Methods
Method 1: Using Connect Node (Recommended)
Connect → Store Client Id → List Categories (use Client Id)
Method 2: Direct Credentials
Provide both Site URL and Credentials directly in the node options.
Requirements
- A WordPress site with REST API enabled (WordPress 4.7+)
- No special permissions required - categories are publicly accessible
Error Handling
The node will return specific errors in the following cases:
- Authentication failure (if using credentials)
- Network connection errors
- WordPress REST API disabled
- Invalid response format
Usage Notes
- Returns all categories, including those with 0 posts
- Categories are publicly accessible - no authentication required for basic retrieval
- The result includes the complete category hierarchy information
- Empty categories (count: 0) are included in the results
- The default "Uncategorized" category is included
- Results are sorted by name by default
Example Output
Category List:
[
{
"id": 1,
"count": 15,
"description": "Posts that don't fit other categories",
"link": "https://yoursite.com/category/uncategorized/",
"name": "Uncategorized",
"slug": "uncategorized",
"parent": 0
},
{
"id": 5,
"count": 23,
"description": "Posts about technology and software",
"link": "https://yoursite.com/category/technology/",
"name": "Technology",
"slug": "technology",
"parent": 0
},
{
"id": 12,
"count": 8,
"description": "Web development articles",
"link": "https://yoursite.com/category/technology/web-dev/",
"name": "Web Development",
"slug": "web-dev",
"parent": 5
}
]
Common Use Cases
Category Management
- Audit existing category structure
- Export category data
- Verify category hierarchy
- Check category usage (post counts)
Content Organization
- Analyze which categories are most used
- Identify empty or unused categories
- Map category relationships
- Review category descriptions for SEO
Category Lookup
- Get category IDs for creating/updating posts
- Find parent category IDs for creating subcategories
- Verify category exists before assignment
- Check category slugs for URL building
Data Migration
- Export categories from WordPress
- Backup category structure
- Sync categories between sites
- Prepare category mapping for imports
Automation Setup
- Retrieve category IDs for automated workflows
- Validate category assignments
- Build dynamic category selection lists
- Check category availability before creating posts
Filtering and Processing Results
After retrieving the category list, you can process it using JavaScript or Filter nodes:
Find Category by Name
const categories = msg.category_list;
const techCategory = categories.find(cat => cat.name === "Technology");
return { category_id: techCategory.id };
Get Top-Level Categories
const categories = msg.category_list;
const topLevel = categories.filter(cat => cat.parent === 0);
return { top_level_categories: topLevel };
Get Categories with Posts
const categories = msg.category_list;
const activeCategories = categories.filter(cat => cat.count > 0);
return { active_categories: activeCategories };
Build Category Hierarchy
const categories = msg.category_list;
function buildHierarchy(parentId) {
return categories
.filter(cat => cat.parent === parentId)
.map(cat => ({
...cat,
children: buildHierarchy(cat.id)
}));
}
const hierarchy = buildHierarchy(0);
return { category_tree: hierarchy };
Get Subcategories of a Category
const categories = msg.category_list;
const parentId = 5; // Technology category
const subcategories = categories.filter(cat => cat.parent === parentId);
return { subcategories: subcategories };
Example Workflows
Check if Category Exists Before Creating
1. List Categories
2. Filter results to find matching name
3. If found: Use existing category ID
4. If not found: Create Category → Get new ID
Get Category ID for Post Assignment
1. List Categories
2. Find category by name (e.g., "Technology")
3. Extract category ID
4. Use ID in Create Post or Update Post
Category Usage Analysis
1. List Categories
2. Filter by count > 0
3. Sort by count (descending)
4. Export top 10 categories
5. Generate usage report
Sync Categories Between Sites
Source Site:
1. List Categories
2. Export to JSON/CSV
Target Site:
3. List Categories (check existing)
4. For each source category:
- If not exists: Create Category
- Map old ID to new ID
Best Practices
- Cache the category list if using it multiple times in a flow
- Use the category ID rather than name for reliability
- Check for empty results before processing
- Handle the case where expected categories don't exist
- Store category IDs in variables for reuse
- Refresh category list after creating new categories
- Consider filtering categories in your flow logic rather than making multiple API calls
Performance Considerations
- List Categories is a lightweight operation
- Returns all categories in a single request
- No pagination needed (most sites have < 100 categories)
- Results can be cached for better performance
- Filter results in memory rather than making repeated API calls
Troubleshooting
Empty Category List returned:
- Verify WordPress site is accessible
- Check if any categories exist in WordPress
- Confirm REST API is enabled
- Check authentication if using credentials
Missing expected categories:
- Refresh the WordPress admin panel
- Verify categories weren't deleted
- Check if you're querying the correct site
- Clear WordPress cache if using caching plugins
Categories showing count: 0:
- This is normal for unused categories
- Categories persist even when empty
- Use count field to identify active categories
Working with Hierarchies
Understanding Parent-Child Relationships
- parent: 0 - Top-level category (no parent)
- parent: 5 - Child of category with ID 5
- Use parent field to build hierarchical structures
- Multiple levels of nesting are supported
Finding Category Paths
To get the full path of a category (e.g., "Technology > Web Development"):
function getCategoryPath(categoryId, allCategories) {
const category = allCategories.find(c => c.id === categoryId);
if (!category || category.parent === 0) {
return category ? [category.name] : [];
}
const parentPath = getCategoryPath(category.parent, allCategories);
return [...parentPath, category.name];
}
const path = getCategoryPath(12, msg.category_list);
// Returns: ["Technology", "Web Development"]
Integration Examples
Export to CSV
1. List Categories
2. Transform to CSV format:
- ID, Name, Slug, Description, Parent, Count
3. Write to CSV file
Category Report
1. List Categories
2. Calculate statistics:
- Total categories
- Top-level categories
- Average posts per category
- Most used categories
3. Generate HTML/PDF report
Category Cleanup
1. List Categories
2. Filter by count === 0 (empty categories)
3. Exclude default "Uncategorized"
4. For each empty category:
- Delete Category
5. Report deleted categories