Je voudrais accéder à l'ID de poste actuel à partir d'un bloc. Selon cette page de documentation , il semblerait que je devrais pouvoir obtenir l’ID de poste avec:
wp.data.getCurrentPostId();
// or
wp.data.withSelect('core/editor').getCurrentPostId();
// or
wp.editor.getCurrentPostId();
mais aucun de ceux-ci sont corrects.
Pour obtenir simplement la valeur, vous pouvez appeler le sélecteur:
const post_id = wp.data.select("core/editor").getCurrentPostId();
Dans ce cas, l'ID de publication ne changera pas, vous pouvez donc simplement affecter la valeur à une constante extérieure au composant:
const { Component } = wp.element;
const { getCurrentPostId } = wp.data.select("core/editor");
const post_id = getCurrentPostId();
class Example extends Component {
render() {
return <div>{post_id}</div>;
}
}
Mais si la valeur change, il est préférable de connecter le composant au magasin (par exemple, si vous utilisez getGlobalBlockCount()
). Ainsi, chaque fois que la valeur est mise à jour, le sélecteur rend le composant à nouveau. Voici un exemple:
const { Component } = wp.element;
const { withSelect } = wp.data;
class Example extends Component {
render() {
const { post_id, block_count } = this.props;
return <div>{block_count}</div>;
}
}
export default withSelect(select => {
const { getCurrentPostId, getGlobalBlockCount } = select("core/editor");
return {
post_id: getCurrentPostId(),
block_count: getGlobalBlockCount()
};
})(Example);