GetChildIdsというスニペットがありましたので、これを参考に自作してみました。
PHPのコーダーではないので見よう見まねです。
とりあえず動きそうなので、他の方がBrushUpして頂けることを期待して公開しますね。
(あくまでも他人頼み...

)
まず以下のSnippetを作ります。ここでは仮に名称を「ListLatest」とします。
<?php
$docid = (isset($docid))? $docid: $modx->documentIdentifier;
$sortBy = (isset($sortBy)) ? $sortBy : 'menuindex';
$sortDir = (isset($sortDir)) ? $sortDir : 'ASC';
$itemNumber = (isset($itemNumber)) ? $itemNumber : 3;
if( !function_exists(getNumberLimitedChildIds) ) {
function getNumberLimitedChildIds( $docid, $sortBy, $sortDir, $number ) {
global $modx;
$children = $modx->getActiveChildren($docid, $sortBy, $sortDir,'id');
if( !$children === false ) {
$idArray = array();
$count = 0;
foreach( $children as $c ) {
$idArray[] = $c['id'];
if( ++$count == $number ) break;
}
$output = implode(',',$idArray);
} else {
$output = $docid;
}
return $output;
}
}
$children = $modx->getActiveChildren( $docid, $sortBy, $sortDir, 'id' );
if( !$children === false ) {
$outputArray = array();
foreach( $children as $c ) {
$tmpIds = getNumberLimitedChildIds( $c['id'], $sortBy, $sortDir, $itemNumber );
if( $tmpIds == $c['id'] ) continue;
else $outputArray[] = $tmpIds;
}
$output = implode(',',$outputArray);
} else {
$output= $docid;
}
return $output;
?>
このSnippetの引数は4つあります。
&docidは、wmoさんの最初の投稿で言う「親カテゴリー」に相当するドキュメントのIDです。
&itemNumberは、子カテゴリー配下のドキュメントの中からいくつのドキュメントを抽出するかを指定します。
&sortByと&sortDirは、子カテゴリー配下のドキュメントの中から上記で指定された数のドキュメントを抽出する際に、どういう並び順で抽出するかを指定します。
例えば...「親カテゴリーのIDが20で、それぞれの子カテゴリーの中から更新時間の新しいものから5つ抽出」という条件だとすれば、
[!ListLatest? &docid=`20` &sortBy=`editedon` &sortDir=`DESC` &itemNumber=`5`!]
と言う風に使います。
このスニペットで抽出されるのは、Dittoでの表示に必要なドキュメントのIDをカンマ区切りで繋いだもので、例えば「2,52,44,15,33」のような出力が得られます。
で、最終的に親カテゴリーに相当するドキュメントにDittoを置きます。
例えば以下のような感じで...
[!Ditto? &documents=`[[ListLatest? &docid=`20` &sortBy=`editedon` &sortDir=`DESC` &itemNumber=`5`]]` &tpl=`ditto_blog` &sortBy=`editedon` &display=`all`!]
こんな感じで私の環境では表示できた...ように思います...(自信なし! :’()