PluginProbe ʕ •ᴥ•ʔ
Admin Columns / 7.1.4
Admin Columns v7.1.4
7.1.4 7.0.19 2.3.5 2.4 2.4.1 2.4.10 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.4.8 2.4.9 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.6.1 2.5.6.2 2.5.6.3 2.5.6.4 3.0 3.0.1 3.0.2 3.0.3 3.0.5 3.0.7 3.1 3.1.1 3.1.10 3.1.2 3.1.3 3.1.5 3.2.3 3.2.7 3.3.1 3.4.1 3.4.6 3.4.8 4.0.1 4.0.3 4.1.6 4.2.2 4.2.5 4.3 4.3.2 4.4.1 4.4.4 4.4.5 4.5.5 4.6.1 4.7.18 4.7.19 4.7.20 4.7.7 7.0.13 7.0.14 7.0.16 trunk 1.0 1.1 1.1.3 1.2 1.2.1 1.3 1.3.1 1.4 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.5.1 1.4.6 1.4.6.1 1.4.6.2 1.4.6.3 1.4.6.4 1.4.7 1.4.8 1.4.9 2.0.0 2.0.1 2.0.2 2.0.3 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.2 2.2.1 2.2.1.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.5.1 2.2.6 2.2.6.1 2.2.6.2 2.2.6.3 2.2.6.4 2.2.7 2.2.8 2.2.8.1 2.2.9 2.3.1 2.3.2 2.3.3
codepress-admin-columns / classes / Formatter / User / FirstPost.php
codepress-admin-columns / classes / Formatter / User Last commit date
AuthorPostUrl.php 2 days ago CommentCount.php 2 days ago FirstPost.php 2 days ago FullName.php 2 days ago HasRichEditing.php 2 days ago LastPost.php 2 days ago Meta.php 2 days ago PostCount.php 2 days ago PostCountOriginal.php 2 days ago Property.php 2 days ago Roles.php 2 days ago ShowToolbar.php 2 days ago TranslatedRoles.php 2 days ago UserFilteredPostLink.php 2 days ago UserLink.php 2 days ago UserName.php 2 days ago
FirstPost.php
62 lines
1 <?php
2
3 declare(strict_types=1);
4
5 namespace AC\Formatter\User;
6
7 use AC\Exception\ValueNotFoundException;
8 use AC\Formatter;
9 use AC\Type\Value;
10
11 class FirstPost implements Formatter
12 {
13 private ?array $post_type;
14
15 private ?array $post_stati;
16
17 public function __construct(?array $post_type = null, ?array $post_stati = null)
18 {
19 $this->post_type = $post_type;
20 $this->post_stati = $post_stati;
21 }
22
23 public function format(Value $value): Value
24 {
25 $first_post = $this->get_first_post((int)$value->get_id());
26
27 if (! $first_post) {
28 throw ValueNotFoundException::from_id($value->get_id());
29 }
30
31 return new Value(
32 $this->get_first_post((int)$value->get_id())
33 );
34 }
35
36 private function get_first_post(int $user_id): ?int
37 {
38 $args = [
39 'author' => $user_id,
40 'fields' => 'ids',
41 'number' => 1,
42 'orderby' => 'date',
43 'order' => 'ASC',
44 ];
45
46 if ($this->post_stati) {
47 $args['post_status'] = $this->post_stati;
48 }
49
50 if ($this->post_type) {
51 $args['post_type'] = $this->post_type;
52 }
53
54 $post_id = get_posts($args)[0] ?? null;
55
56 return $post_id
57 ? (int)$post_id
58 : null;
59 }
60
61 }
62