Estoy trabajando en mi primer tema personalizado de wordpress y trabajando en un bloque personalizado de Gutenberg. Hasta ahora funciona en mi configuración. Pero me preocupa cuándo los usuarios lo instalarán en diferentes caminos. Estoy haciendo una llamada API REST como esta:
function( props ) { if (! props.attributes.categories ){ wp.apiFetch( { url: '/wordpress/wp-json/wp/v2/categories' } ).then(categories => { props.setAttributes ({ categories: categories }) }); } Instalé wordpress localmente con MAMP en una ruta personalizada (/ wordpress) en lugar de la carpeta principal. Entonces http://localhost/wordpress/ . Mi pregunta es, la URL url: '/wordpress/wp-json/wp/v2/categories' funciona porque especifiqué la ruta exacta, agregando /wordpress/ delante de la ruta habitual, pero ¿cómo puedo hacerlo? dinámico para que funcione para cualquier ruta en la que los usuarios instalen su sitio de wordpress?
Hacer solo url: '/wp-json/wp/v2/categories' funcionará bien para cualquier usuario siempre que wordpress esté instalado en la carpeta de índice. Pero, ¿qué sucede si un usuario decide instalar mi tema y complemento en un sitio de wordpress en una ruta personalizada, por ejemplo, theme.com/wordpress-subfolder/ ?
¡Gracias de antemano a todos!
Localiza tu script con el valor de get_rest_url().
wp_register_script( 'my-script' , 'path/to/the-script.js' ); wp_localize_script( 'my_script' , 'wpRestApi' , array( 'url' => get_rest_url() ) ); wp_enqueue_script( 'my_script' );En js, puede acceder a la url con wpRestApi.url
wpRestApi.url + 'wp/v2/categories'