PHP
Pixel’s public hooks, with an example for each. Their parameters and return values are in the hooks reference, generated from the code.
Several filters receive the image design being rendered, with its settings,
elements, other and locations, but not the image’s ID. To target one
image, compare its name, settings.name, which is the name you gave it in the
image library.
Conditions
sleekPixel/conditions adds conditions to the Conditions
view. Each needs an id, a label and a value computed for the current
request; an id that starts with is or has makes a boolean condition. Use
lowercase IDs, because the editor stores them lowercased.
add_filter('sleekPixel/conditions', function ($conditions) {
$conditions[] = [
'id' => 'is_campaign',
'label' => 'Is campaign link',
'value' => isset($_GET['campaign']),
];
return $conditions;
});
Data
sleekPixel/data changes the dynamic data before
an image uses it. The second argument holds postId, the post being rendered,
and the image design.
add_filter('sleekPixel/data', function ($data, $args) {
$imageName = $args['settings']['name'] ?? '';
// Change the post title for one image only.
if ($imageName === 'Blog post card') {
$data['post']['title'] = 'New Post Title';
}
return $data;
}, 10, 2);
Custom data
sleekPixel/data/custom adds entries to the Custom group of the dynamic data.
Custom data has an example and the rules the
entries follow.
Element data
sleekPixel/image/element/data changes one element of a design just before
it renders. The element holds its type (text, image or section), its
data and its styles; the second argument is the image design.
add_filter('sleekPixel/image/element/data', function ($element, $image) {
$imageName = $image['settings']['name'] ?? '';
$isText = ($element['type'] ?? '') === 'text';
// Colour every text element of one image blue.
if ($imageName === 'Blog post card' && $isText) {
$element['data']['color']['value'] = '#007bff';
}
return $element;
}, 10, 2);
Page output
To write its Open Graph and Twitter Card tags, Pixel buffers a front-end page
from wp_head to wp_footer when an image’s Open Graph or Twitter Card
conditions match it, or when sleekPixel/buffer/output has a callback.
sleekPixel/buffer/output receives that HTML after Pixel has changed it and
returns what is sent. When another plugin opened an output buffer after
Pixel’s and has not closed it by the end of wp_footer, Pixel leaves both
buffers as they are and the page goes out unchanged.
add_filter('sleekPixel/buffer/output', function ($html) {
return str_replace('</head>', "<!-- Images by Pixel -->\n</head>", $html);
});
Init
sleekPixel/init fires once after Pixel has booted, with the plugin instance
that sleekPixel() also returns.
add_action('sleekPixel/init', function ($pixel) {
// Pixel's post types, shortcode and commands are registered.
});