andrewmead/wordpress-proper

一组可能对WordPress开发有用的类

4.0.1 2024-08-27 15:51 UTC

This package is auto-updated.

Last update: 2024-09-27 15:58:50 UTC


README

Build Status

WordPress Proper

一组无需依赖即可用于WordPress开发的类。

文档

入门指南

WordPress Proper可以通过composer安装

composer require andrewmead/wordpress-proper

从那里,您可以导入您需要的任何模块

use Proper\Number;

Number::abbreviate(654201); // 654.2K

周期性

Periodic::check(string $option_name, string|DateInterval $interval): bool

Periodic 允许您周期性地执行某些操作。它由WordPress选项和PHP的DateInterval类提供支持。

当您需要偶尔执行某些操作时,它非常合适。在下面的示例中,Periodic用于每30分钟运行一次代码。

<?php

use Proper\Periodic;

if (Periodic::check('verify_geo_database_file', 'PT30M')) {
    // Run some code every 30 minutes
}

第一个参数是要用于支持周期性任务的选项名称。此选项将存储周期性任务上次运行的时间。

第二个参数是您定义要等待的周期。这可以表示为DateInterval或一个有效的字符串持续时间,该持续时间是DateInterval构造函数可以接受的。

// Define the period using a string
$should_verify = Periodic::check('verify_geo_database_file', 'PT3S');

// Define the period using a DateInterval
$interval = new DateInterval('PT3S');
$should_verify = Periodic::check('verify_geo_database_file', $interval);

check 调用始终返回布尔值。如果现在是运行任务的时间,则值为true。如果自任务上次完成以来尚未经过指定的时间段,则值为false

数字

缩写

Number::abbreviate(int|float $number, bool $round = false): string

abbreviate 方法将大数字(如742898)缩写为较短的字符串(如743K)。

<?php

use Proper\Number;

Number::abbreviate(1260000); // 1.3M

Number::abbreviate(133800); // 133.8K

// Round off decimals 
Number::abbreviate(133800, true); // 134K

它提供了以下缩写:

  1. 千 - Number::abbreviate(133300) 返回字符串 133.3K
  2. 百万 - Number::abbreviate( 1300000 ) 返回字符串 1.3M
  3. 十亿 - Number::abbreviate( 999000000000 ) 返回字符串 999B
  4. 万亿 - Number::abbreviate( 1000000000000 ) 返回字符串 1T

低于一千的数字不缩写。这意味着 Number::abbreviate(978) 会返回字符串 978

等于或高于十亿级的数字不缩写。这意味着 Number::abbreviate(1000000000000000) 会返回字符串 1,000,000,000,000,000

在幕后,abbreviate 使用WordPress的 number_format_i18n 来国际化缩写。这确保了 Number::abbreviate(1500) 对于 en_US 返回字符串 1.5K,而对于 de_DE 返回 1,5K

时区

一组小型函数,使处理WordPress站点的时区变得更简单。

site_timezone

::site_timezone(): DateTimeZone

获取以PHP DateTimeZone 表示的WordPress站点的时区。

<?php

use Proper\Timezone;

Timezone::site_timezone(); // new DateTimeZone('America/New_York')

site_offset

::site_offset(): string

获取WordPress站点时区的偏移量。这表示为字符串。例如,包括 "-04:00""+08:45""-11:30"

<?php

use Proper\Timezone;

Timezone::site_offset(); // "-04:00"

site_offset_in_hours

::site_offset_in_hours(): float

获取WordPress站点时区的十进制偏移量。这表示为浮点数。例如,包括 -48.75-11.5

<?php

use Proper\Timezone;

Timezone::site_offset_in_hours(); // -4

site_offset_in_seconds

::site_offset_in_seconds(): int

获取WordPress站点时区的偏移量(以秒为单位)。这表示为int类型。例如包括-1440031500-41400

<?php

use Proper\Timezone;

Timezone::site_offset_in_seconds(); // -14400

utc_timezone

::utc_timezone(): DateTimeZone

获取代表UTC的DateTimeZone实例。这总是返回相同的值,但作为site_timezone的一个便捷替代品。

<?php

use Proper\Timezone;

Timezone::utc_timezone(); // Will always return new DateTimeZone('UTC');

utc_offset

::utc_offset(): string

获取UTC的偏移量。这总是返回+00:00。这总是返回相同的值,但作为site_offset的一个便捷替代品。

<?php

use Proper\Timezone;

Timezone::utc_offset(); // Will always return "+00:00"

utc_offset_in_hours

::utc_offset_in_hours(): float

获取UTC的十进制偏移量。这总是返回0。这总是返回相同的值,但作为site_offset_in_hours的一个便捷替代品。

<?php

use Proper\Timezone;

Timezone::utc_offset_in_hours(); // Will always return 0

utc_offset_in_seconds

::utc_offset_in_seconds(): int

获取UTC的十进制偏移量。这总是返回0。这总是返回相同的值,但作为site_offset_in_seconds的一个便捷替代品。

<?php

use Proper\Timezone;

Timezone::utc_offset_in_seconds(); // Will always return 0