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
PHP
70 lines
2.0 KiB
PHP
<?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
|