PluginProbe
Parse.ly / 3.6.0
Parse.ly v3.6.0
3.24.1 3.24.0 3.23.7 3.23.6 3.23.5 3.23.4 3.23.3 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.17.0 3.18.0 3.18.1 3.19.0 3.19.1 3.19.2 3.19.3 3.2.0 3.2.1 3.20.0 3.20.1 3.20.2 3.20.3 All 105 releases
wp-parsely / src / Metadata / class-date-builder.php

class-date-builder.php in Parse.ly 3.6.0, at src/Metadata/class-date-builder.php

60 lines 1.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Date Page Metadata Builder class
4 *
5 * @package Parsely
6 * @since 3.4.0
7 */
8
9 declare(strict_types=1);
10
11 namespace Parsely\Metadata;
12
13 /**
14 * Implements abstract Metadata Builder class to generate the metadata array
15 * for a date page.
16 *
17 * @since 3.4.0
18 */
19 class Date_Builder extends Metadata_Builder {
20 /**
21 * Generates the metadata object by calling the build_* methods and
22 * returns the value.
23 *
24 * @since 3.4.0
25 *
26 * @return array<string, mixed>
27 */
28 public function get_metadata(): array {
29 $this->build_basic();
30 $this->build_headline();
31 $this->build_url();
32
33 return $this->metadata;
34 }
35
36 /**
37 * Populates the `headline` field in the metadata object.
38 *
39 * @since 3.4.0
40 */
41 private function build_headline(): void {
42 $site_date_format = get_option( 'date_format' );
43
44 if ( is_year() ) {
45 /* translators: %s: Archive year */
46 $this->metadata['headline'] = sprintf( __( 'Yearly Archive - %s', 'wp-parsely' ), get_the_time( 'Y' ) );
47 } elseif ( is_month() ) {
48 /* translators: %s: Archive month, formatted as F, Y */
49 $this->metadata['headline'] = sprintf( __( 'Monthly Archive - %s', 'wp-parsely' ), get_the_time( 'F, Y' ) );
50 } elseif ( is_day() ) {
51 /* translators: %s: Archive day, formatted as F jS, Y */
52 $this->metadata['headline'] = sprintf( __( 'Daily Archive - %s', 'wp-parsely' ), get_the_time( $site_date_format ) );
53 } elseif ( is_time() ) {
54 $site_time_format = get_option( 'time_format' );
55 /* translators: %s: Archive time, formatted as F jS g:i:s A */
56 $this->metadata['headline'] = sprintf( __( 'Hourly, Minutely, or Secondly Archive - %s', 'wp-parsely' ), get_the_time( "{$site_date_format} {$site_time_format}" ) );
57 }
58 }
59 }
60