alleyinteractive/archiveless

WordPress 插件,用于隐藏存档(列表)中的帖子

安装次数: 3,124

依赖关系: 0

建议者: 0

安全性: 0

星标: 7

关注者: 40

分支: 4

开放问题: 7

类型:wordpress-plugin

v1.1.1 2023-04-20 19:28 UTC

README

Testing Suite

排除特定 WordPress 帖子从存档(主页、搜索、日期/作者/术语存档)中。

向头部添加 <meta name='robots' content='noindex,nofollow' /> 元数据,以限制其包含在网页搜索中。

背景

此插件提供了一种让内容存在于 WordPress 中并可通过直接 URL 访问但同时在其他地方隐藏的方式。这对于删除不应出现在搜索结果中的过时内容非常有用。

用法

默认情况下,插件将防止无存档帖子出现在页面上。这仅限于页面的 主要查询。默认情况下,它不会影响其他查询。

可以通过传递 exclude_archiveless 将无存档帖子排除在正常查询之外

$query = new WP_Query(
  [
    'exclude_archiveless' => true,
    // ...
  ]
);

// Via 'pre_get_posts'.
add_action(
  'pre_get_posts',
  function ( $query ) {
    if ( special_condition() ) {
      $query->set( 'exclude_archiveless', true );
    }
  }
);

使用 get_posts() 调用处理无存档帖子

使用 get_posts() 执行的查询默认情况下始终会排除无存档帖子,因为 get_posts() 设置默认的 post_statuspublish。要包含无存档帖子,您可以指定 post_statusany,显式声明 post_status[ 'publish', 'archiveless' ],或传递 include_archiveless 设置为 true

// $post_ids will include archiveless posts.
$post_ids = get_posts(
  [
    'fields'              => 'ids',
    'include_archiveless' => true,
    'suppress_filters'    => false,
  ]
);

// Or declare the post_status explicitly.
$post_ids = get_posts(
  [
    'fields'              => 'ids',
    'suppress_filters'    => false,
    'post_status'         => [ 'archiveless', 'publish' ],
  ]
);

安装

插件包含未编译的 JavaScript。您可以通过跟踪 main-built 分支或使用 *-built 标签来安装插件。否则,您可以下载插件并手动编译资源

npm install
npm run build

变更日志

有关最近更改的更多信息,请参阅 CHANGELOG

维护者

该项目由 Alley Interactive 积极维护。喜欢你所看到的?加入我们

Alley logo

许可证

本软件根据 GNU 通用公共许可证第 2 版或任何后续版本发布。