Try this:
<<list-links filter:"[all[]has:field[status]] :filter[{!!status}!match[Sold]!match[On Consignment]]">>
Notes:
- The first filter run,
[all[]has:field[status]], returns all tiddlers that have a status field. Note thathas[status]is only true if the field is not empty, whilehas:field[status]is true as long as thestatusfield exists, even if it is empty. - Similarly, in the second filter run, the
get[status]filter operator only returns a value if the field is not empty. However, there is no equivalentget:field[status]that will return emptystatusfields. To address this, use{!!status}which always returns a value even if the field is empty or doesn’t exist. - Also, for simple string comparisons, you can use the more succinct
!match[...]filter operator rather thancompare:string:ne[...]. Note that both of these filters are case-sensitive. If you want to do case-insensitive comparisons, you can add alowercase[]operator, and then compare with lower case string literals, like this:
<<list-links filter:"[all[]has:field[status]] :filter[{!!status}lowercase[]!match[sold]!match[on consignment]]">>
enjoy,
-e