diff --git a/packages/block-library/src/query/edit/inspector-controls/order-control.js b/packages/block-library/src/query/edit/inspector-controls/order-control.js index 23802f844359d7..f233f7b2878ecb 100644 --- a/packages/block-library/src/query/edit/inspector-controls/order-control.js +++ b/packages/block-library/src/query/edit/inspector-controls/order-control.js @@ -23,6 +23,16 @@ const orderOptions = [ label: __( 'Z → A' ), value: 'title/desc', }, + { + /* translators: Label for ordering posts by ascending menu order. */ + label: __( 'Ascending by order' ), + value: 'menu_order/asc', + }, + { + /* translators: Label for ordering posts by descending menu order. */ + label: __( 'Descending by order' ), + value: 'menu_order/desc', + }, ]; function OrderControl( { order, orderBy, onChange } ) { return ( diff --git a/packages/components/src/query-controls/index.native.js b/packages/components/src/query-controls/index.native.js index 4e687f4af09d57..d6c9c35b23d5d2 100644 --- a/packages/components/src/query-controls/index.native.js +++ b/packages/components/src/query-controls/index.native.js @@ -33,6 +33,16 @@ const options = [ label: __( 'Z → A' ), value: 'title/desc', }, + { + /* translators: Label for ordering posts by ascending menu order. */ + label: __( 'Ascending by order' ), + value: 'menu_order/asc', + }, + { + /* translators: Label for ordering posts by descending menu order. */ + label: __( 'Descending by order' ), + value: 'menu_order/desc', + }, ]; const QueryControls = memo( diff --git a/packages/components/src/query-controls/index.tsx b/packages/components/src/query-controls/index.tsx index 452dd303c778bb..ee0c84c8424739 100644 --- a/packages/components/src/query-controls/index.tsx +++ b/packages/components/src/query-controls/index.tsx @@ -75,6 +75,37 @@ export function QueryControls( { // but instead are destructured inline where necessary. ...props }: QueryControlsProps ) { + const orderByList = [ + { + label: __( 'Newest to oldest' ), + value: 'date/desc', + }, + { + label: __( 'Oldest to newest' ), + value: 'date/asc', + }, + { + /* translators: Label for ordering posts by title in ascending order. */ + label: __( 'A → Z' ), + value: 'title/asc', + }, + { + /* translators: Label for ordering posts by title in descending order. */ + label: __( 'Z → A' ), + value: 'title/desc', + }, + { + /* translators: Label for ordering posts by ascending menu order. */ + label: __( 'Ascending by order' ), + value: 'menu_order/asc', + }, + { + /* translators: Label for ordering posts by descending menu order. */ + label: __( 'Descending by order' ), + value: 'menu_order/desc', + }, + ]; + return ( { [ @@ -89,26 +120,7 @@ export function QueryControls( { ? undefined : `${ orderBy }/${ order }` } - options={ [ - { - label: __( 'Newest to oldest' ), - value: 'date/desc', - }, - { - label: __( 'Oldest to newest' ), - value: 'date/asc', - }, - { - /* translators: Label for ordering posts by title in ascending order. */ - label: __( 'A → Z' ), - value: 'title/asc', - }, - { - /* translators: Label for ordering posts by title in descending order. */ - label: __( 'Z → A' ), - value: 'title/desc', - }, - ] } + options={ orderByList } onChange={ ( value ) => { if ( typeof value !== 'string' ) { return; diff --git a/packages/components/src/query-controls/types.ts b/packages/components/src/query-controls/types.ts index eb004bf8215b0a..91807e006c7c78 100644 --- a/packages/components/src/query-controls/types.ts +++ b/packages/components/src/query-controls/types.ts @@ -45,7 +45,7 @@ export type AuthorSelectProps = Pick< }; type Order = 'asc' | 'desc'; -type OrderBy = 'date' | 'title'; +type OrderBy = 'date' | 'title' | 'menu_order'; type BaseQueryControlsProps = { /**