hanamura/wp-model

WordPress模型对象缺失的功能。

1.2.0 2014-12-10 09:44 UTC

This package is not auto-updated.

Last update: 2024-09-28 14:30:07 UTC


README

WordPress模型对象缺失的功能。

API

帖子

WordPress原生帖子对象的扩展包装,WP_Post

new Post($post), Post::create($post)

  • $post integer | WP_Post
    帖子ID或WP_Post对象。
$post = new WPModel\Post($post_id);

// same properties of WP_Post are accessible
echo $post->post_date;
echo $post->post_title;
echo $post->post_mime_type;

->permalink, ->permalink()

获取帖子的固定链接。

返回值: string

$post = new WPModel\Post($post_id);

echo $post->permalink;

->children, ->children([$options])

获取帖子的子帖子。

  • $options array
    • $options['id'] integer | array
      按ID筛选。
    • $options['post_type'] string | array
      按帖子类型筛选。
    • $options['post_mime_type'] string | array
      按帖子MIME类型筛选。

返回值: array

$post = new WPModel\Post($post_id);

$children = $post->children(array(
  'id' => array(10, 11, 12)
));
$attachments = $post->children(array(
  'post_type' => 'attachment'
));
$images = $post->children(array(
  'post_mime_type' => 'image'
));

->terms, ->terms([$options])

获取附加到帖子的术语。

  • $options array
    • $options['taxonomy'] string
      指定分类法。默认值: 'category'

返回值: array

$post = new WPModel\Post($post_id);

$custom_terms = $post->terms(array(
  'taxonomy' => 'custom_taxonomy'
));

->meta, ->meta()

帖子的PostMeta对象。

返回值: WPModel\PostMeta

$post = new WPModel\Post($post_id);

// get meta value
echo $post->meta->custom_field;

// set meta value
$post->meta->custom_field = 'hello';

->image, ->image([$options])

如果帖子是一个图像附件,则获取WPModel\Image对象。

  • $options array
    • $options['size'] string
      通过字符串指定大小(例如 'full''large''medium''thumbnail')。默认值: 'full'

返回值: WPModel\Image

$post = new WPModel\Post($post_id);

$thumbnail = $post->image(array(
  'size' => 'thumbnail'
));
echo $thumbnail->url;
echo $thumbnail->path;
echo $thumbnail->width;
echo $thumbnail->height;

->images, ->images()

如果帖子是一个图像附件,则获取图像数组。

返回值: array

$post = new WPModel\Post($post_id);

$images = $post->images;

// get WPModel\Image object
$images['full'];
$images['large'];
$images['medium'];
$images['thumbnail'];

->group, ->group([$options])

检索按相同术语分组的帖子。

  • $options array
    • $options['taxonomy'] string
      分类法名称。默认值: 'category'
    • $options['options'] array
      内部调用的 WP_Query 的自定义参数。
    • $options['map'] callable
      默认值: array('WPModel\Post', 'create')

返回值: array

$post = new WPModel\Post($post_id);

$related_posts = $post->group(array(
  'taxonomy' => 'custom_taxonomy',
  'options' => array('posts_per_page' => 5),
  'map' => function($post) {
    return CustomPostClass($post);
  },
));

->neighbor($options)

检索前一个/下一个 WP_Post 对象。如果不存在则返回 null

  • $options array
    • $options['post_type'] string | array
      帖子类型。默认值: $this->post_type
    • $options['direction'] string
      邻居的方向: prevnext

返回值: WP_Post

$post = new WPModel\Post($post_id);

$prev_post = $post->neighbor(array(
  'post_type' => ['post', 'custom_post_type'],
  'direction' => 'prev',
));

->exists, ->exists()

如果帖子存在,则返回 true

返回值: boolean

$post = new WPModel\Post(0);

$post->exists; // => false

->hasChild($post)

如果值是帖子的子项,则返回 true

  • $post integer | WP_Post | WPModel\Post

返回值: boolean

$post = new WPModel\Post($post_id);

$post->hasChild($child_post);

->matchMimeType($type)

如果值与帖子的MIME类型匹配,则返回 true。例如, 'image/jpeg''image''jpeg' 匹配 'image/jpeg'

  • $type string

返回值: boolean

$post = new WPModel\Post($post_id);

$post->matchMimeType('image/jpeg');

PostMeta

参见 WPModel\Post->meta

Term

WordPress原生术语对象的扩展包装。参见 wp_get_post_terms 的返回值。

new Term($term, [$taxonomy]), Term::create($term, [$taxonomy])

  • $term integer | term object
    术语ID或术语对象。
  • $taxonomy string
    分类法名称。
// create by constructor
$term = new WPModel\Term($term_id, 'custom_taxonomy');

// get from WPModel\Post
$post = new WPModel\Post($post_id);
$terms = $post->terms(array(
  'taxonomy' => 'custom_taxonomy'
));

->children, ->children([$options])

获取术语的子术语。

  • $options array
    参见 get_terms$args
$child_terms = $term->children(array(
  'orderby' => 'count',
  'hide_empty' => false
));

Image

参见 WPModel\Post->image

User

WordPress原生用户对象的扩展包装,WP_User

new User([$user]), User::create([$user])

  • $user 整数 | WP_User
    用户ID或WP_User对象。如果未指定,则返回当前用户。
// current user
$user = new WPModel\User();

// specify user id
$user = new WPModel\User($user_id);

// same properties of WP_User are accessible
echo $user->user_email;
echo $user->user_login;
echo $user->first_name;

->meta, ->meta()

用户的UserMeta对象。

返回值: WPModel\UserMeta

$user = new WPModel\User();

// get meta value
echo $user->meta->rich_editing;

// set meta value
$user->meta->rich_editing = 'false';

->exists, ->exists()

如果用户存在,则返回true

返回值: boolean

$post = new WPModel\User();

$post->exists; // => true

UserMeta

参见WPModel\User->meta