What is the purpose of user capability checks in WordPress?
User capability checks control what actions a user can perform based on their role and permissions. They help keep the site secure by limiting access to sensitive features.
Click to reveal answer
beginner
Which WordPress function is commonly used to check if a user has a specific capability?
The current_user_can() function checks if the current logged-in user has a given capability, returning true or false.
Click to reveal answer
beginner
How do you check if a user can edit posts in WordPress?
Use current_user_can('edit_posts'). It returns true if the user has permission to edit posts, false otherwise.
Click to reveal answer
intermediate
Why should you always use capability checks before performing sensitive actions in WordPress?
To prevent unauthorized users from accessing or changing data they shouldn't. It protects your site from security risks and accidental damage.
Click to reveal answer
intermediate
What is the difference between roles and capabilities in WordPress?
Roles are groups of capabilities assigned to users. Capabilities are specific permissions like 'edit_posts' or 'manage_options'. Roles bundle capabilities for easier management.
Click to reveal answer
Which function checks if the current user can perform a specific action in WordPress?
Acan_user_do()
Buser_has_role()
Ccheck_user_permission()
Dcurrent_user_can()
✗ Incorrect
The correct function is current_user_can(), which checks user capabilities.
What does current_user_can('edit_posts') return if the user cannot edit posts?
Atrue
Bnull
Cfalse
Derror
✗ Incorrect
It returns false if the user does not have the 'edit_posts' capability.
Which WordPress concept groups multiple capabilities together for users?
AWidgets
BRoles
CFilters
DHooks
✗ Incorrect
Roles group capabilities to assign sets of permissions to users.
Why is it important to check user capabilities before showing admin options?
ATo prevent unauthorized access
BTo change the site theme
CTo improve site speed
DTo backup the database
✗ Incorrect
Checking capabilities prevents unauthorized users from accessing sensitive features.
Which capability would you check to allow a user to manage site settings?
Amanage_options
Bedit_posts
Cpublish_posts
Dread
✗ Incorrect
The 'manage_options' capability allows users to manage site settings.
Explain how user capability checks help secure a WordPress site.
Think about who can do what on your site and how you stop others.
You got /4 concepts.
Describe the difference between roles and capabilities in WordPress and why both are useful.
Roles are like job titles; capabilities are the tasks allowed.
You got /4 concepts.
Practice
(1/5)
1. What is the main purpose of the current_user_can() function in WordPress?
easy
A. To check if the current user has a specific capability
B. To create a new user role
C. To delete a user from the database
D. To update the user's profile information
Solution
Step 1: Understand the function's role
current_user_can() is designed to check permissions for the current user.
Step 2: Identify correct usage
It returns true if the user has the capability passed as an argument, otherwise false.
Final Answer:
To check if the current user has a specific capability -> Option A
Quick Check:
Permission check = A [OK]
Hint: Remember: current_user_can checks permissions, not user creation [OK]
Common Mistakes:
Confusing capability check with user creation
Thinking it modifies user data
Assuming it deletes users
2. Which of the following is the correct syntax to check if the current user can edit posts?
easy
A. current_user_can(edit_posts);
B. current_user_can['edit_posts'];
C. current_user_can('edit_posts');
D. current_user_can->edit_posts();
Solution
Step 1: Identify correct function call syntax
WordPress functions use parentheses and string arguments in quotes.
Step 2: Check each option
Only current_user_can('edit_posts'); uses parentheses and quotes correctly.
Final Answer:
current_user_can('edit_posts'); -> Option C
Quick Check:
Function call with string argument = B [OK]
Hint: Use parentheses and quotes for capability strings [OK]
Common Mistakes:
Omitting quotes around capability
Using square brackets instead of parentheses
Using arrow notation incorrectly
3. What will the following code output if the current user cannot delete posts?
The if checks if the user has 'delete_posts' capability.
Step 2: Evaluate the condition result
If the user cannot delete posts, the condition is false, so the else block runs.
Final Answer:
Cannot delete posts -> Option D
Quick Check:
False condition triggers else = D [OK]
Hint: If user lacks capability, else block runs [OK]
Common Mistakes:
Assuming output is always 'Can delete posts'
Confusing capability names
Expecting errors if capability missing
4. Identify the error in this code snippet:
if (current_user_can('edit_post')) {
echo 'User can edit post';
}
medium
A. Missing semicolon after echo statement
B. The capability name should be 'edit_posts' not 'edit_post'
C. current_user_can() requires two arguments
D. The function should be called as currentUserCan()
Solution
Step 1: Check capability name correctness
WordPress uses 'edit_posts' (plural) as the capability, not 'edit_post'.
Step 2: Verify syntax and function usage
Semicolon is present, function takes one argument, and function name is correct.
Final Answer:
The capability name should be 'edit_posts' not 'edit_post' -> Option B
Quick Check:
Correct capability string = A [OK]
Hint: Check exact capability names in WordPress docs [OK]
Common Mistakes:
Using singular instead of plural capability names
Assuming function needs multiple arguments
Incorrect function name casing
5. You want to show a special admin menu only to users who can manage options and edit themes. Which code correctly checks both capabilities before showing the menu?
hard
A. if (current_user_can('manage_options') && current_user_can('edit_themes')) { show_menu(); }
B. if (current_user_can('manage_options' || 'edit_themes')) { show_menu(); }
C. if (current_user_can(['manage_options', 'edit_themes'])) { show_menu(); }
D. if (current_user_can('manage_options') || current_user_can('edit_themes')) { show_menu(); }
Solution
Step 1: Understand logical AND for both capabilities
To require both permissions, use && between two separate current_user_can() calls.
Step 2: Evaluate each option's logic
if (current_user_can('manage_options') && current_user_can('edit_themes')) { show_menu(); } correctly uses && with two calls; A and B misuse syntax; D uses || which allows either permission.
Final Answer:
if (current_user_can('manage_options') && current_user_can('edit_themes')) { show_menu(); } -> Option A
Quick Check:
Both capabilities require && = C [OK]
Hint: Use && with separate calls to check multiple capabilities [OK]
Common Mistakes:
Using || instead of && when both permissions are needed
Passing multiple capabilities as one argument
Using incorrect syntax for logical operators
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.