26 lines
572 B
PHP
26 lines
572 B
PHP
<?php declare(strict_types=1);
|
|
|
|
namespace HaikuAtelier\WP;
|
|
|
|
use Psl\Option;
|
|
use function Psl\Option\none;
|
|
|
|
use function Psl\Option\some;
|
|
use WP_Term;
|
|
use function is_array;
|
|
|
|
final readonly class Term {
|
|
/**
|
|
* @return Option\Option<list<WP_Term>>
|
|
*/
|
|
public static function get_terms(int $post_id, string $taxonomy_name): Option\Option {
|
|
$terms = get_the_terms($post_id, $taxonomy_name);
|
|
|
|
if (is_array($terms)) {
|
|
/** @var Option\Option<list<WP_Term>> */
|
|
return some($terms);
|
|
}
|
|
|
|
return none();
|
|
}
|
|
}
|