If you've left the Path property empty then it will not find any child pages. You could specifically declare it (/About/%) or dynamically declare it with a macro.
If you want the page template to have a multi purpose then I'd suggest creating a custom macro and using it. Here is some code I used to create a macro to get the parent alias:
/// <summary>
/// Register the methods so they show in the Macro window
/// </summary>
public static void RegisterMethods()
{
MacroMethod getParentAlias = new MacroMethod("GetParentAlias", GetParentAlias)
{
Comment = "Returns the top level parent url alias.",
Type = typeof(string),
AllowedTypes = new List<Type>() { typeof(string) },
MinimumParameters = 1,
Snippet = "GetParentAlias(\"/Cards/Application/\")"
};
getParentAlias.AddParameter("URL", typeof(string), "Default ULR if none found.");
MacroMethods.RegisterMethod(getParentAlias);
}
/// <summary>
/// Wrapper method of GetParentAlias suitable for MacroResolver.
/// </summary>
/// <param name="parameters">array of parameters</param>
/// <returns></returns>
public static object GetParentAlias(params object[] parameters)
{
switch (parameters.Length)
{
case 1:
return GetParentAlias(ValidationHelper.GetString(parameters[0], ""));
default:
throw new NotSupportedException();
}
}
/// <summary>
/// Gets the top level navigation from a URL
/// </summary>
/// <param name="URL"></param>
/// <returns></returns>
public static string GetParentAlias(string URL)
{
// putting a dummy value in so if it cannot get a URL it will return one that doesn't exist and not display any items.
string ReturnValue = "/unknown";
// parse out the URL and get only the text between the first / and the second /
int firstIndex = 0;
string urlFirstSlashRemoved = URL.Substring(1, URL.Length - 1);
if (urlFirstSlashRemoved.Length > 0)
{
// check for second level page ie: /page1/page2/
firstIndex = urlFirstSlashRemoved.IndexOf("/");
if (firstIndex > -1)
{
ReturnValue = "/" + URL.Substring(1, firstIndex);
}
else
{
// parent page
ReturnValue = URL;
}
}
return ReturnValue;
}
You'd use it in a webpart as a macro expression like so:
{% GetParentAlias(CurrentURL) + "/%" @%}