ΠΠΎ ΡΠ΅ΠΌΠ΅: # 594
Π # 594, ΠΊΠΎΠ³Π΄Π° ΡΠ΅ΡΠ½ΠΎΠ²ΠΈΠΊ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π·Π°Π²Π΅ΡΡΠ°Π΅Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅, ΠΌΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠΈΡΡΠ΅ΠΌ ΡΠ΅ΠΊΡΡΠΈΠΉ URL-Π°Π΄ΡΠ΅Ρ Π±ΡΠ°ΡΠ·Π΅ΡΠ°, ΡΡΠΎΠ±Ρ ΠΎΠ½ ΠΎΡΡΠ°ΠΆΠ°Π» Π½ΠΎΠ²ΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ. Π₯ΠΎΡΡ ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΊΡΠ°Π½Π° ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ°, ΡΡΠΎ ΡΠ½ΠΈΠΆΠ°Π΅Ρ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΡΡΡ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ°, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ URL-Π°Π΄ΡΠ΅ΡΠΎΠ² Π½Π΅ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΡ Π²Π½Π΅ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°. ΠΡΠ»ΠΈ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ° Π½Π° Π΄ΡΡΠ³ΠΈΡ ΡΠΊΡΠ°Π½Π°Ρ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, Customizer), Π½Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ ΠΈΠ·ΡΡΠΈΡΡ Π²Π°ΡΠΈΠ°Π½ΡΡ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΠΎ-Π·Π°Π²ΠΈΡΠΈΠΌΠΎΠ³ΠΎ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΠ»ΡΠΆΠΈΡΡ ΠΎΠ±ΡΠΈΠΌ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠΌ ΡΠ°ΡΡΠΈΡΡΠ΅ΠΌΠΎΡΡΠΈ Π΄Π»Ρ Π»ΡΠ±ΡΡ ΠΏΠΎΠ±ΠΎΡΠ½ΡΡ ΡΡΡΠ΅ΠΊΡΠΎΠ² ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ.
Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Ρ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠ΅ΠΉ ΠΏΡΠΈ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠΈ Π·Π°ΠΏΠΈΡΠΈ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ:
wp.editor.injectMiddleware( ( store ) => ( next ) => ( action ) => {
const { type, isNew, post } = action;
if ( 'REQUEST_POST_UPDATE_SUCCESS' === type ) {
const [ baseUrl, query ] = window.location.href.split( '?' );
const qs = parse( query || '' );
const newUrl = baseUrl + '?' + stringify( {
...qs,
post_id: newPost.id,
} );
window.history.replaceState( {}, 'Post ' + newPost.id, newUrl );
}
return next( action );
} );
Π‘ΠΌΠΎΡΡΠΈΡΠ΅ ΡΠ°ΠΊΠΆΠ΅:
middleware
)ΠΠΎΡΠΌΠΎΡΡΠΈΡΠ΅, ΠΊΠ°ΠΊ ΠΌΡ Π΄Π΅Π»Π°Π΅ΠΌ ΡΡΠΎ Π΄Π»Ρ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ Ρ automattic / wp-calypso.
ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠΈ ΡΠ½Ρ Π°Π½ΡΠ΅ΡΠΎΠ²
Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄Π»Ρ ΡΠ΅ΠΆΠΈΠΌΠ° iframe
ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ Π² Calypso
ΠΊΡΡΠ°ΡΠΈ, ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π΅Π²Π΅ΡΠΎΡΡΠ½ΠΎ Ρ ΠΎΡΠΎΡΠΎ
ΠΡΠΎΡΠ»ΠΎ 8 ΠΌΠ΅ΡΡΡΠ΅Π², Π° ΠΎΠ½ Π½Π°ΠΌ Π²ΡΠ΅ Π΅ΡΠ΅ Π½ΡΠΆΠ΅Π½ π Π£ Π½Π°Ρ Π±ΡΠ» ΡΠ΅ΡΡΠ΅Π·Π½ΡΠΉ ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³ Π² ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΌΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌ Π΄Π°Π½Π½ΡΠ΅, Π½ΠΎ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ΅ ΠΠ ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ ΠΈΠ³ΡΠ°Π΅Ρ Π²Π°ΠΆΠ½ΡΡ ΡΠΎΠ»Ρ. ΠΡ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ ΠΈΠ·ΡΡΠΈΡΡ, ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ Π»ΠΈ Π·Π΄Π΅ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Ρ ΡΠΊΠΎΠ². ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²Π½Π΅Π΄ΡΠΈΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ΅ ΠΠ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΈΠ»ΡΡΡΠΎΠ² Π·Π΄Π΅ΡΡ: https://github.com/WordPress/gutenberg/blob/master/editor/store/middlewares.js#L40. @youknowriad ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΠ» Π΄Π»Ρ
ΠΠ³ΠΎ Π·Π°ΠΌΠ΅Π½ΡΡΡ Π½ΠΎΠ²ΡΠ΅ ΡΠ°Π±Π»ΠΎΠ½Ρ Ρ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ Π΄Π°Π½Π½ΡΡ
: Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, API subscribe
ΠΈ withSelect
, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈ ΡΠ΅Π°Π³ΠΈΡΠΎΠ²Π°ΡΡ Π½Π° Π½ΠΈΡ
Ρ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ: https://github.com/WordPress /gutenberg/blob/master/packages/data/README.md
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
ΠΠΎΡΠΌΠΎΡΡΠΈΡΠ΅, ΠΊΠ°ΠΊ ΠΌΡ Π΄Π΅Π»Π°Π΅ΠΌ ΡΡΠΎ Π΄Π»Ρ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ Ρ automattic / wp-calypso.
ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠΈ ΡΠ½Ρ Π°Π½ΡΠ΅ΡΠΎΠ²
Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄Π»Ρ ΡΠ΅ΠΆΠΈΠΌΠ° iframe
ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ Π² Calypso
ΠΊΡΡΠ°ΡΠΈ, ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π΅Π²Π΅ΡΠΎΡΡΠ½ΠΎ Ρ ΠΎΡΠΎΡΠΎ