gamajo/dashboard-glancer

这是一个WordPress插件的类,可以使将自定义文章类型计数添加到“快速浏览”仪表板小部件变得更加容易。

1.0.5 2018-05-20 07:10 UTC

This package is auto-updated.

Last update: 2024-09-07 21:41:17 UTC


README

一个用于复制到您的WordPress插件中的类,以便将自定义文章类型计数添加到 快速浏览 仪表板小部件变得容易。

Scrutinizer Quality Score

描述

WordPress 3.8引入了 快速浏览 仪表板小部件,作为 立即 小部件的替代品。新小部件包含一个动作钩子 dashboard_glance_items,允许开发者在小部件中插入额外的列表项。虽然获取特定文章类型的条目数,并在标记内显示它并不复杂,但无法像这个类允许的那样最小化操作。如果您希望包含多个文章类型的计数或多个状态,这个类就派上用场了。请参阅使用部分以了解代码有多简单。

安装

这本身不是一个WordPress插件,因此通常的说明不适用。相反

手动安装类

  1. class-gamajo-dashboard-glancer.php 复制到您的插件中。它可以是插件根目录中的文件,或者更好的是 includes 目录。
  2. 确保类文件可供任何将使用它的代码访问。
// Require the new class (change to your correct path)
if ( ! class_exists( 'Gamajo_Dashboard_Glancer' ) ) {
    require plugin_dir_path( 'includes/class-gamajo-dashboard-glancer.php' );
}

或者

通过Composer安装类

  1. 告诉Composer安装此类作为依赖项: composer require gamajo/dashboard-glancer
  2. 推荐:安装Mozart包: composer require coenjacobs/mozart --dev配置它
  3. 现在将类重命名为使用您自己的前缀,以防止与其他插件捆绑的此类的冲突。

使用

在您的插件文件中,作为函数或类的一部分,实现如下内容

// Hook into the widget (or any hook before it!) to register your items.
add_action( 'dashboard_glance_items', 'prefix_add_dashboard_counts' );
function prefix_add_dashboard_counts() {
    $glancer = new Gamajo_Dashboard_Glancer;
    $glancer->add( 'my_cpt' ); // show only published "my-cpt" entries
}

就这样!

更多使用示例

// Lots of examples of how to add given here, you only need one for each combination of
// multiple post types and multiple statuses.
add_action( 'dashboard_glance_items', 'prefix_add_dashboard_counts' );
function prefix_add_dashboard_counts() {
    $glancer = new Gamajo_Dashboard_Glancer;
    $glancer->add( 'my_cpt' ); // show only published "my-cpt" entries
    $glancer->add( 'my_cpt', 'draft' ); // show only draft "my-cpt" entries
    $glancer->add( 'my_cpt', array( 'publish', 'draft' ) ); // show only published and draft "my-cpt" entries

    // Show only published and draft entries for all three post types
    $my_post_types = array( 'ingredients', 'recipes', 'meal_plan' );
    $glancer->add( $my_post_types, array( 'publish', 'draft' ) );

    // Supports custom statuses as well
    $my_statuses = array( 'pitch', 'assigned', 'in-progress', 'needs-edit', 'ready-to-publish' );
    $glancer->add( 'post', $my_statuses );
}

记住,上面的代码展示了如何一次性添加多个文章类型和多个状态的许多示例。对于最简单的情况,您会实例化类,然后对 add() 方法进行单个调用,然后就这样。

注意

文本标签是从自定义文章类型注册本身获取的。如果计数正好是1,则使用单数标签(例如 故事),否则使用复数名称(例如 故事)。如果状态不是 publish,则将其附加到状态以消除歧义。如果项目计数为零,则不会显示任何内容,以保持视觉杂乱到最小。

该类会自动在 dashboard_glance_items 动作钩子优先级20处输出任何仍然注册的项目。如果您想以更早的优先级输出,则只需在连接到该较早优先级(此处为8)时,在具有注册项目的对象上调用 show() 方法。

add_action( 'dashboard_glance_items', 'prefix_add_dashboard_counts', 8 );
function prefix_add_dashboard_counts() {
    $glancer = new Gamajo_Dashboard_Glancer;
    $glancer->add( 'my_cpt' ); // show only published "my-cpt" entries
    $glancer->show();
}

一旦调用 show(),所有注册的项目都将取消注册,因此再次调用 show()(在优先级20处或手动)不会在工具小部件上显示重复的项目。

该类不是单例,因此如果您在一个函数中添加项目,但希望在另一个函数中显示早期,则需要传递对象,可能通过全局变量。作为非单例,您还可以通过从 Gamajo_Dashboard_Glancer 类实例化两个对象来注册一些项目以早期显示,并注册一些项目以晚期显示,但仅对其中一个调用 show()

为WP 3.7“立即”小部件的后向兼容性

此项目还包括 Gamajo_Dashboard_RightNow 类,它是对主类 Gamajo_Dashboard_Glancer 的扩展。这个类可以在绑定到 right_now_content_table_end 插件的函数中实例化并添加,以在 WordPress 3.7 的“立即”小工具中提供相同的信息。

// Hook into the widget (or any hook before it!) to register your items.
add_action( 'right_now_content_table_end', 'prefix_add_dashboard_counts_old' );
function prefix_add_dashboard_counts_old() {
    $glancer = new Gamajo_Dashboard_RightNow;
    $glancer->add( 'my_cpt' ); // show only published "my-cpt" entries
}

贡献

欢迎贡献——请从 develop 分支进行分叉、修复并发送拉取请求。

许可协议

GPL-2.0+,因此您可以在任何 WordPress 项目中使用它。请告诉我您使用的情况(使用不是必须的),因为我很想知道我的代码在哪里被使用!

致谢

Gary Jones 构建
版权所有 2013 Gary Jones,Gamajo Tech