@prefix sioc: <http://rdfs.org/sioc/ns#> .
@prefix dc: <http://purl.org/dc/elements/1.1/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix content: <http://purl.org/rss/1.0/modules/content/> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<https://lhero.org/portfolio/lh-comment-moderation/>
  a sioc:Post ;
  dc:title "Abilities" ;
  dcterms:identifier 152472 ;
  dc:modified "2026-10-25T17:09:02Z"^^xsd:dateTime ;
  dc:created "2026-10-25T17:09:02Z"^^xsd:dateTime ;
  sioc:link <https://lhero.org/portfolio/lh-comment-moderation/abilities/> ;
  sioc:has_creator <https://lhero.org/author/1/#account> ;
  sioc:has_container <https://lhero.org/#posts> ;
  content:encoded "<ul class=\"lh_portfolio-meta\"><li><strong>Part of:</strong> <a href=\"https://lhero.org/portfolio/lh-comment-moderation/\">LH Comment Moderation</a></li></ul><div class=\"lh_portfolio-ability-reference\"><ul class=\"lh_portfolio-ability-reference-index\"><li><a href=\"#ability-list-comments\"><code>list-comments</code></a> List Comments</li><li><a href=\"#ability-moderate-comments\"><code>moderate-comments</code></a> Moderate Comments</li><li><a href=\"#ability-set-discussion\"><code>set-discussion</code></a> Set Discussion</li></ul><section class=\"lh_portfolio-ability-reference-ability\" id=\"ability-list-comments\"><h2>List Comments</h2><p class=\"lh_portfolio-ability-reference-meta\"><code>lh-comment-moderation/list-comments</code> <span class=\"lh_portfolio-ability-reference-annotation lh_portfolio-ability-reference-annotation-readonly\">Read-only</span> <span class=\"lh_portfolio-ability-reference-annotation lh_portfolio-ability-reference-annotation-idempotent\">Idempotent</span></p><p>Lists comments for moderation, newest first, filtered by post, status, search text or author email. Each comment comes with id, <code>post_id</code>, type (comment, pingback or trackback), author, <code>author_email</code>, date (site-local Y-m-d H:i:s), status (approve, hold, spam or trash) and a plain-text excerpt of up to 40 words. status all, the default, is approved plus held comments, as in wp-admin; ask for spam or trash by name. search matches the comment text, author name, email, URL and IP. Pages of up to 100; total and <code>total_pages</code> give the full count. Pass the ids to moderate-comments to act on them. Requires <code>moderate_comments</code>. Pass <code>site_id</code> to act on another site you belong to.</p><figure class=\"wp-block-table lh_portfolio-ability-reference-params\"><table><thead><tr><th>Parameter</th><th>Type</th><th>Required</th><th>Default</th><th>Description</th></tr></thead><tbody><tr><td><code>post_id</code></td><td>integer</td><td>No</td><td></td><td>Only comments on this post.</td></tr><tr><td><code>status</code></td><td>string</td><td>No</td><td><code>&quot;all&quot;</code></td><td>all (default): approved and held. approve, hold, spam or trash: only that status. One of: <code>all</code>, <code>approve</code>, <code>hold</code>, <code>spam</code>, <code>trash</code>.</td></tr><tr><td><code>search</code></td><td>string</td><td>No</td><td></td><td>Text to find in the comment, author name, email, URL or IP.</td></tr><tr><td><code>author_email</code></td><td>string</td><td>No</td><td></td><td>Only comments with exactly this author email.</td></tr><tr><td><code>per_page</code></td><td>integer</td><td>No</td><td><code>20</code></td><td>Comments per page, up to 100.</td></tr><tr><td><code>page</code></td><td>integer</td><td>No</td><td><code>1</code></td><td>Page number, from 1.</td></tr><tr><td><code>site_id</code></td><td>integer</td><td>No</td><td></td><td>Optional. ID of another site in the network to act on; list-my-sites gives the sites you belong to. Permissions are checked on that site. Omit for this site.</td></tr></tbody></table></figure></section><section class=\"lh_portfolio-ability-reference-ability\" id=\"ability-moderate-comments\"><h2>Moderate Comments</h2><p class=\"lh_portfolio-ability-reference-meta\"><code>lh-comment-moderation/moderate-comments</code> <span class=\"lh_portfolio-ability-reference-annotation lh_portfolio-ability-reference-annotation-idempotent\">Idempotent</span></p><p>Approves, unapproves, spams, unspams, trashes or untrashes up to 200 comments in one call, returning a result per comment. Every comment gets its own result: changed, unchanged (already in that state, or nothing to undo) or error, with <code>status_before</code>, <code>status_after</code> and a message, so one bad ID never stops the rest. Nothing is ever deleted: trash is the furthest it goes, and trash is refused when the site has trash disabled. A spam or trashed comment must be unspammed or untrashed before it can be approved or unapproved. Each change is recorded in the audit trail. Find IDs with list-comments. Each comment also needs <code>edit_comment</code>. Requires <code>moderate_comments</code>. Pass <code>site_id</code> to act on another site you belong to.</p><figure class=\"wp-block-table lh_portfolio-ability-reference-params\"><table><thead><tr><th>Parameter</th><th>Type</th><th>Required</th><th>Default</th><th>Description</th></tr></thead><tbody><tr><td><code>ids</code></td><td>array of integer</td><td>Yes</td><td></td><td>Comment IDs, up to 200.</td></tr><tr><td><code>action</code></td><td>string</td><td>Yes</td><td></td><td>approve, unapprove (hold for moderation), spam, unspam (restores the status before it was spammed), trash or untrash (restores the status before it was trashed). One of: <code>approve</code>, <code>unapprove</code>, <code>spam</code>, <code>unspam</code>, <code>trash</code>, <code>untrash</code>.</td></tr><tr><td><code>task_id</code></td><td>integer</td><td>No</td><td></td><td>Optional. The lh-tasks task this call is working on. Pass with <code>claim_token</code>: the call is refused unless you hold that claim, and a successful call renews it.</td></tr><tr><td><code>claim_token</code></td><td>string</td><td>No</td><td></td><td>Optional. The <code>claim_token</code> from claim-next-task for <code>task_id</code>. Required when <code>task_id</code> is given.</td></tr><tr><td><code>site_id</code></td><td>integer</td><td>No</td><td></td><td>Optional. ID of another site in the network to act on; list-my-sites gives the sites you belong to. Permissions are checked on that site. Omit for this site.</td></tr></tbody></table></figure></section><section class=\"lh_portfolio-ability-reference-ability\" id=\"ability-set-discussion\"><h2>Set Discussion</h2><p class=\"lh_portfolio-ability-reference-meta\"><code>lh-comment-moderation/set-discussion</code> <span class=\"lh_portfolio-ability-reference-annotation lh_portfolio-ability-reference-annotation-idempotent\">Idempotent</span></p><p>Opens or closes comments, and optionally pingbacks and trackbacks, on up to 200 posts of any type, returning a result per post. Sets each post&#039;s <code>comment_status</code> and, when <code>ping_status</code> is given, its <code>ping_status</code>; existing comments are left as they are, so use moderate-comments for those. Each result is changed, unchanged or error, with the before and after settings and <code>comments_open</code>, which is whether comments are actually open now: it can be false on an open post when the site closes comments on older posts. Each change is recorded in the audit trail. Each post also needs <code>edit_post</code>. Requires <code>moderate_comments</code>. Pass <code>site_id</code> to act on another site you belong to.</p><figure class=\"wp-block-table lh_portfolio-ability-reference-params\"><table><thead><tr><th>Parameter</th><th>Type</th><th>Required</th><th>Default</th><th>Description</th></tr></thead><tbody><tr><td><code>post_ids</code></td><td>array of integer</td><td>Yes</td><td></td><td>Post IDs, up to 200.</td></tr><tr><td><code>comment_status</code></td><td>string</td><td>Yes</td><td></td><td>open or closed. One of: <code>open</code>, <code>closed</code>.</td></tr><tr><td><code>ping_status</code></td><td>string</td><td>No</td><td></td><td>Optional. open or closed for pingbacks and trackbacks. Omit to leave it as it is. One of: <code>open</code>, <code>closed</code>.</td></tr><tr><td><code>task_id</code></td><td>integer</td><td>No</td><td></td><td>Optional. The lh-tasks task this call is working on. Pass with <code>claim_token</code>: the call is refused unless you hold that claim, and a successful call renews it.</td></tr><tr><td><code>claim_token</code></td><td>string</td><td>No</td><td></td><td>Optional. The <code>claim_token</code> from claim-next-task for <code>task_id</code>. Required when <code>task_id</code> is given.</td></tr><tr><td><code>site_id</code></td><td>integer</td><td>No</td><td></td><td>Optional. ID of another site in the network to act on; list-my-sites gives the sites you belong to. Permissions are checked on that site. Omit for this site.</td></tr></tbody></table></figure></section></div>"^^rdf:XMLLiteral ;
  sioc:content "Part of: LH Comment Moderationlist-comments List Commentsmoderate-comments Moderate Commentsset-discussion Set DiscussionList Commentslh-comment-moderation/list-comments Read-only IdempotentLists comments for moderation, newest first, filtered by post, status, search text or author email. Each comment comes with id, post_id, type (comment, pingback or trackback), author, author_email, date (site-local Y-m-d H:i:s), status (approve, hold, spam or trash) and a plain-text excerpt of up to 40 words. status all, the default, is approved plus held comments, as in wp-admin; ask for spam or trash by name. search matches the comment text, author name, email, URL and IP. Pages of up to 100; total and total_pages give the full count. Pass the ids to moderate-comments to act on them. Requires moderate_comments. Pass site_id to act on another site you belong to.ParameterTypeRequiredDefaultDescriptionpost_idintegerNoOnly comments on this post.statusstringNo&quot;all&quot;all (default): approved and held. approve, hold, spam or trash: only that status. One of: all, approve, hold, spam, trash.searchstringNoText to find in the comment, author name, email, URL or IP.author_emailstringNoOnly comments with exactly this author email.per_pageintegerNo20Comments per page, up to 100.pageintegerNo1Page number, from 1.site_idintegerNoOptional. ID of another site in the network to act on; list-my-sites gives the sites you belong to. Permissions are checked on that site. Omit for this site.Moderate Commentslh-comment-moderation/moderate-comments IdempotentApproves, unapproves, spams, unspams, trashes or untrashes up to 200 comments in one call, returning a result per comment. Every comment gets its own result: changed, unchanged (already in that state, or nothing to undo) or error, with status_before, status_after and a message, so one bad ID never stops the rest. Nothing is ever deleted: trash is the furthest it goes, and trash is refused when the site has trash disabled. A spam or trashed comment must be unspammed or untrashed before it can be approved or unapproved. Each change is recorded in the audit trail. Find IDs with list-comments. Each comment also needs edit_comment. Requires moderate_comments. Pass site_id to act on another site you belong to.ParameterTypeRequiredDefaultDescriptionidsarray of integerYesComment IDs, up to 200.actionstringYesapprove, unapprove (hold for moderation), spam, unspam (restores the status before it was spammed), trash or untrash (restores the status before it was trashed). One of: approve, unapprove, spam, unspam, trash, untrash.task_idintegerNoOptional. The lh-tasks task this call is working on. Pass with claim_token: the call is refused unless you hold that claim, and a successful call renews it.claim_tokenstringNoOptional. The claim_token from claim-next-task for task_id. Required when task_id is given.site_idintegerNoOptional. ID of another site in the network to act on; list-my-sites gives the sites you belong to. Permissions are checked on that site. Omit for this site.Set Discussionlh-comment-moderation/set-discussion IdempotentOpens or closes comments, and optionally pingbacks and trackbacks, on up to 200 posts of any type, returning a result per post. Sets each post&#039;s comment_status and, when ping_status is given, its ping_status; existing comments are left as they are, so use moderate-comments for those. Each result is changed, unchanged or error, with the before and after settings and comments_open, which is whether comments are actually open now: it can be false on an open post when the site closes comments on older posts. Each change is recorded in the audit trail. Each post also needs edit_post. Requires moderate_comments. Pass site_id to act on another site you belong to.ParameterTypeRequiredDefaultDescriptionpost_idsarray of integerYesPost IDs, up to 200.comment_statusstringYesopen or closed. One of: open, closed.ping_statusstringNoOptional. open or closed for pingbacks and trackbacks. Omit to leave it as it is. One of: open, closed.task_idintegerNoOptional. The lh-tasks task this call is working on. Pass with claim_token: the call is refused unless you hold that claim, and a successful call renews it.claim_tokenstringNoOptional. The claim_token from claim-next-task for task_id. Required when task_id is given.site_idintegerNoOptional. ID of another site in the network to act on; list-my-sites gives the sites you belong to. Permissions are checked on that site. Omit for this site." ;
  sioc:topic <https://lhero.org/?taxonomy=author&term=cap-1> .

<https://lhero.org/author/1/#account> rdfs:seeAlso <https://lhero.org/author/1/?feed=lhrdf&format=turtle> .
<https://lhero.org/?taxonomy=author&term=cap-1> rdfs:seeAlso <https://lhero.org/?taxonomy=author&term=cap-1&feed=lhrdf&format=turtle> .
