You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

70 lines
2.0 KiB
PHTML

<?php
/**
* Shortcode - HowTo
*
* @package RankMath
* @subpackage RankMath\Schema
*/
use RankMath\Schema\Block_HowTo;
use RankMath\Helpers\WordPress;
defined( 'ABSPATH' ) || exit;
$has_duration = false;
$days = 0;
$hours = 0;
$minutes = 0;
if ( isset( $schema['totalTime'] ) && WordPress::get_formatted_duration( $schema['totalTime'] ) ) {
$has_duration = true;
$duration = new \DateInterval( $schema['totalTime'] );
$days = $duration->d;
$hours = $duration->h;
$minutes = $duration->i;
}
$attributes = [
'days' => $days,
'hours' => $hours,
'minutes' => $minutes,
'hasDuration' => $has_duration,
'material' => isset( $schema['material'] ) ? $schema['material'] : '',
'imageUrl' => isset( $schema['image']['url'] ) ? $schema['image']['url'] : '',
'description' => isset( $schema['description'] ) ? $schema['description'] : '',
'estimatedCost' => isset( $schema['estimatedCost']['value'] ) ? $schema['estimatedCost']['value'] : '',
'estimatedCostCurrency' => isset( $schema['estimatedCost']['currency'] ) ? $schema['estimatedCost']['currency'] : '',
'steps' => [],
'supply' => '',
'tools' => '',
];
if ( ! empty( $schema['step'] ) ) {
foreach ( $schema['step'] as $step ) {
$attributes['steps'][] = [
'visible' => 1,
'title' => $step['name'],
'imageUrl' => $step['image']['url'],
'content' => $step['itemListElement']['text'],
];
}
}
if ( ! empty( $schema['supply'] ) ) {
foreach ( $schema['supply'] as $supply ) {
$attributes['supply'] .= $supply['name'] . PHP_EOL;
}
}
if ( ! empty( $schema['tool'] ) ) {
foreach ( $schema['tool'] as $tool ) {
$attributes['tools'] .= $tool['name'] . PHP_EOL;
}
}
// No steps.
if ( empty( $attributes['steps'] ) ) {
return;
}
echo Block_HowTo::markup( $attributes ); // phpcs:ignore