WordPress model exporter for Bustle
The JSON representations of WordPress converted models can be accessed via HTTP requests to either the native WP JSON API like https://domain.tld/wp-json/bustle/{model}/{id}
e.g. /wp-json/bustle/post/1774807
or a custom permalink endpoint like https://domain.tld/slug/bustle/
There is also a WP CLI command to output the models.
wp bustle-exporter export posts --ids 1234,1235
If you want to convert models on your own, simply instantiate the model, and call get_model()
;
$bustle_post = new \Bustle\Post( $post );
return $bustle_post->get_model();
If you want to just convert your post content to the Mobiledoc format for export to another Mobiledoc-capable system, you can call: new \Bustle\Mobiledoc\Wrapper( $post )
The plugin provides numerous filters throughout the request cycle. Many of these are dynamic.
-
To change the value of a model's property specifically, use
bustle_exporter_{$model_name}_attribute_{$key}
->bustle_exporter_post_attribute_title
-
These values run through a sanitization function that defaults to
esc_attr
, but you can register your own callback with:bustle_exporter_{$model_name}_attribute_{$key}_sanitizer
with an example of:add_filter( 'bustle_exporter_post_attribute_primaryMediaURL_sanitizer', 'esc_url' );
-
There is also a catch-all filter before the model is returned that overrides the rest:
bustle_exporter_{$model_name}_model
-
The wp-json API is on by default, but you can deactivate the endpoint with"
add_filter('bustle_exporter_api_active', '__return_false');
-
The custom rewrite endpoint is also able to be deactivated with:"
add_filter('bustle_exporter_endpoint_active', '__return_false');