Wordpress - 如何使 URL 返回具有自定义内容类型的动态 JSON?

2024-04-01

首先是一些背景知识,我尝试按照此处的说明进行操作:

https://developer.apple.com/library/archive/documentation/General/Conceptual/AppSearch/UniversalLinks.html#//apple_ref/doc/uid/TP40016308-CH12-SW1 https://developer.apple.com/library/archive/documentation/General/Conceptual/AppSearch/UniversalLinks.html#//apple_ref/doc/uid/TP40016308-CH12-SW1

获取适用于 iOS 设备的通用链接。我的 WordPress 站点位于共享托管环境中,因此我无权访问服务器或任何根文件。我将该文件放置在我的网站 (httpdocs) 的根目录中,当我导航到该页面时,它不会加载。在谷歌搜索中,我发现一个 stackoverflow 帖子指出你必须配置服务器以让它知道提供内容类型为“application/pkcs7-mime”的文件(使用 wordpress 配置 apple-app-site-association 文件) 。如前所述,我无权访问该内容。

我有一个子域,它是我非常熟悉的 microsoft web api 项目。我为“apple-app-site-association”创建了一个端点,并在代码中动态构建了 json 响应,设置内容类型并返回它。这最终成功了,苹果检测到了它以及一切。这很有趣,因为我不需要在服务器上创建文件,因为我是动态生成的,并且不需要对服务器进行任何更改。

然而问题是我需要主站点域作为通用链接,而不是 Windows 子域。主要站点是wordpress。我在想是否可以在 WordPress 中做同样的事情,我导航到 mydomain.com/apple-app-site-association 并动态生成 json 和内容类型并提供服务。

我从来没有用 wordpress 做过任何编码,甚至不知道从哪里开始。

如果可能的话,我希望得到以下明确的指导:

使 mydomain.com/apple-app-site-association 指向提供 json 的自定义函数或页面。 具有使 json 动态提供的代码。 具有将响应的内容类型设置为“application/pkcs7-mime”的代码。 当然,如果有人知道如何解决没有这种方法的共享服务器无法提供文件的问题,我也对此持开放态度。据我所知,这可能是假设可以做到这一点的唯一方法。


注意:我假设 WordPress 安装在根文件夹中。

所以如果你想要http://example.com/apple-app-site-association提供 JSON 内容,例如this https://pastebin.com/vR8jVQB5并具有内容类型 (Content-Type标题)设置为application/pkcs7-mime,以下是您可以选择的一些选项:

动态内容

因为您使用的是 WordPress,所以这对您来说可能是比手动编辑更好的选择.htaccess file.

您可以使用parse_request钩;这样,您不需要任何自定义(WordPress)重写规则,不需要自定义页面(帖子类型page),并且您不需要创建任何 JSON 文件。

并确保没有名为apple-app-site-association在根文件夹中,或具有 slug 的 WordPress 页面中apple-app-site-association.

所以这将进入您的主题函数文件(例如wp-content/themes/your-theme/functions.php):

<?php
add_action( 'parse_request', 'serve_apple_app_site_association', 0 );
function serve_apple_app_site_association( $wp ) {
    // Check if the request is /apple-app-site-association
    if ( 'apple-app-site-association' !== $wp->request ) {
        return;
    }

    // Array version of the JSON data.
    $data = array(
        'applinks'    => array(
            'apps'    => array(),
            'details' => array(
                array(
                    'appID' => '9JA89QQLNQ.com.apple.wwdc',
                    'paths' => array(
                        '/wwdc/news/',
                        '/videos/wwdc/2015/*',
                    ),
                ),
                array(
                    'appID' => 'ABCD1234.com.apple.wwdc',
                    'paths' => array(
                        '*',
                    ),
                ),
            ),
        ),
    );

    // Send headers.
    status_header( 200 );
    nocache_headers();
    header( 'Content-Type: application/pkcs7-mime' );

    // And serve the JSON data.
    echo wp_json_encode( $data );
    exit;
}

静态内容

  1. 将 JSON 数据放入名为的文件中apple-app-site-association(即没有扩展名)并将文件保存在根文件夹中,您可以在其中看到wp-config.php and .htaccess files.

  2. 将其添加到您的.htaccess file:

<Files apple-app-site-association>
        Header set Content-Type application/pkcs7-mime
</Files>

If the <Files> and/or Header不/不适合你,那么你可以只使用上面的第一个选项,但使用类似readfile()读取静态文件。

或者(特别是如果您的站点不支持/不支持 URL 重写),您可以创建一个名为的文件夹apple-app-site-association在根文件夹中并添加index.php到该文件夹​​和该文件中:

<?php
header( 'Content-Type: application/pkcs7-mime' );
// Read the static file or just generate a dynamic content.
@readfile( __DIR__ . '/apple-app-site-association.json' );
exit;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Wordpress - 如何使 URL 返回具有自定义内容类型的动态 JSON? 的相关文章

  • 来自本地 XML 的模拟 SoapClient 响应

    我想用文件中的 XML 来模拟 SoapClient 的响应 我如何创建一个 stdClass 对象 就像 SoapClient 从文件返回一样 客户端已经包装了 SoapClient 因此可以轻松模拟响应 我的模拟是这样的 soapCli
  • 从 iOS 应用程序内的 Junos Pulse 获取用户凭据

    我正在通过 Junos Pulse 在 iPad 中建立 VPN 连接 以进入我组织的 Intranet 谁能告诉我是否有任何 iOS api 或 SDK 可用于获取在 iOS 应用程序内的 Junos pulse 中输入的用户凭据 Jun
  • 通过 json 模式 Sequelize 定义模型

    我想通过json制作Sequelize模型广告 我在文档中找不到是否可以通过 json 模式进行模型声明 对于这么强大的库 没有这样的功能很奇怪 也许我找错地方了 只是试图找到同一问题的答案 模式示例 类型 对象 模式 http json
  • 如果结果类型为 json,则 Struts2 Action 被调用两次

    我有一个包含 4 个操作方法的 Action 类 所有四个操作操作方法都使用 json 结果 通过日志记录和调试 我已经验证如果我调用操作方法1 操作方法2和3也会被调用 但不是4 最后再次调用action方法1 生成json结果 如果我将
  • 在 Node.js 中解析 Json(带有数组和对象)并将数据导出到 Excel 文件中

    我是 Node js 新手 我的要求是 我需要解析 JSON 并将数据导出到 Excel 文件中 其中包含 JSON 中的所有字段 我的 JSON 如下 id 1255 title The Brain and Nervous System
  • 使用python将json和文件发送到flask

    我遇到这个问题 我试图在单个函数中向 Flask API 发送 接收一些文件和 JSON 在我的客户端 发件人 上我有 my json to be sent datas var1 var1 var2 var2 my file to be s
  • PHP使用auto_increment生成短唯一ID?

    我想生成一个简短的 唯一的 ID 而不必检查冲突 我目前正在做类似的事情 但是我当前生成的 ID 是随机的 并且在循环中检查冲突很烦人 并且如果记录数量显着增加 将会变得昂贵 通常担心冲突不是问题 但我想要生成的唯一 ID 是一个由 5 8
  • 在 null laravel 上调用成员函数 save()

    大家好 我正在使用 laravel 5 多态关系将数据保存在数据库中 但我遇到了一些问题 当我尝试将数据保存在数据库中时 它会抛出此错误 对 null 调用成员函数 save 我不知道为什么我会遇到这个错误 我正在关注多态关系的本教程在 L
  • 如何在 Smarty 中打印 json

    我从 api 获取 json 如何使用 Smarty 打印 json Json格式 first name jinu last name mk loginid email protected cdn cgi l email protectio
  • 选取散列第 N 个元素的最快方法

    我有一个大哈希表 带有字符串索引的数组 并正在寻找一个函数quickly从中选取第一个 理想情况下也是第 N 个 元素 array shift and reset 对于我的需求来说太慢了 UPDATE 我也不是在寻找基于引用的解决方案 该函
  • 如何解决 Laravel 8 UI 分页问题?

    我在尝试最近发布的 laravel 8 时遇到了问题 我试图找出变化是什么以及它是如何工作的 当我这样做时 我遇到了分页 laravel 8 UI 变得混乱的问题 不知何故它发生了 有人可以帮助我吗 或者经历过同样的事情 像这样我在 lar
  • 将两个 JSON 数据合并为具有特定键值的一个

    我有两个 CSV 文件 球数据 json id 1 color red id 2 color blue 法庭 json court id 2001 ball in use 1 court id 2005 ball in use 2 如何根据
  • Windows iis 7.0 上的 APC 不稳定

    我的 IIS 非常不稳定 因为它总是由于某种与 APC 相关的原因而重新启动 服务器的规格如下 Intel R Xeon CPU 3GHZ 3GHZ 2GB RAM 64bit APC 和服务器规格 3 1 7 dev PHP Versio
  • 根据 .NET Core 2.1 中的更改重新加载 Serilog JSON 配置

    我目前正在开发 ASP NET Core 2 1 应用程序 并使用 Serilog 进行日志记录 我想在运行时为我的 Serilog 实现重新加载应用程序设置文件 我的目标是在运行时更改日志级别 例如我写入minimumLevelDebug
  • 使用 NewtonSoft 在一行中生成 JSON 对象

    我正在使用 JSON 库牛顿软件 http nuget org packages newtonsoft json生成 JSON 字符串 JObject out JObject FromObject new typ photos return
  • 使用 PHP 和 OAuth 访问 SkyDrive

    我想使用 PHP 访问 skyDrive 我想检索文件和文件夹列表 下载 上传和删除文件 我有一个 microsoft dev clientID 和 clientSecret 有人可以帮助我开始使用 OAuth 连接到 skyDrive 并
  • 如何使用shell脚本从json字符串中grep特定字段值[重复]

    这个问题在这里已经有答案了 下面是文件中可用的 JSON 字符串 我需要从中提取值status在 shell 脚本中 预期输出 status success 响应 json eventDate null dateProccessed nul
  • 包含 contains 的 json 格式查询

    我在 ansible 中有以下 json 输出 active transaction null cores 4 hostname alpha auth wb01 active transaction null cores 4 hostnam
  • 使用 System.Text.Json 即时格式化 JSON 流

    我有一个未缩进的 Json 字符串 例如 hash 123 id 456 我想缩进字符串并将其序列化为 JSON 文件 天真地 我可以使用缩进字符串Newtonsoft如下 using Newtonsoft Json Linq JToken
  • Doctrine DQL 从 join 返回平面数组

    我通过 DQL 中的常规 LEFT JOIN 选择 3 个实体 它们通过连接表关联 连接表还定义了实体以及带注释的关系 查询执行没有问题 但我的结果作为平面数组返回 我期望一个包含三个实体作为每个索引的数组元素的数组 SELECT e1 e

随机推荐

  • 在 SQL Server 2005 中授予对 2 个表的只读访问权限的最佳方法?

    向少数用户授予对 SQL Server 2005 数据库中几个表的访问权限的最佳方法是什么 我知道文献推动了视图的使用 但是授予对实际表的只读访问权限有什么好处 至少对于表来说 开销会更少 因为索引和其他限制已经就位并在表中进行管理 单点维
  • 如何使用 jQuery 附加 HTML

    我正在使用构建一个 HTML 元素 this html my html here 我需要使用不同的 CSS 在这里添加许多元素 所以我想要的是我应该能够在此处附加另一个 HTML this html my html here this ht
  • ObjC: +[NSObject isSubclassOfClass:] 给出不正确的失败

    我有一个 iOS 静态库 它定义了NSOperation客户端应该子类化以添加自己的逻辑的基类 interface BaseClass NSOperation 客户向管理器注册他们的子类 OperationManagerClass regi
  • 按组排列的 NA 计数[重复]

    这个问题在这里已经有答案了 我知道 R 中的以下语法将按变量给出 NA 的计数 如何通过分组变量对此进行分层 na count lt sapply x function y sum length which is na y 我们可以用agg
  • 如何验证 Azure 虚拟机 RDP 证书?

    我的虚拟机的 RDP 证书指纹由于某种原因发生了更改 有没有办法在 Azure 中验证新的证书指纹 类型 虚拟机 经典 计算机 Basic A3 操作系统 Windows Server Azure 中有可用的启动诊断日志 在启动虚拟机时默认
  • Iexpress - 提取路径

    我要创建一个自解压存档 但在连接默认解压路径时遇到问题 我想在与自解压存档程序相同的路径中解压我的文件 不幸的是 这些文件正在另一个路径中提取 C Users computer AppData Temp IXP000 TMP 可以设置路径吗
  • 应用程序无法打开,因为它来自身份不明的开发者

    我昨天安装了 Mac OS X Mavericks 10 9 从那时起我无法启动 Eclipse 我附上我看到的消息的屏幕截图 有解决方法吗 我找到了一个解决方案修复 Mac OS X 中的 应用程序无法打开 因为它来自身份不明的开发者 错
  • 如何使用 GitPython 拉取远程存储库?

    我正在尝试找到使用 gitPython 提取 git 存储库的方法 到目前为止 这是我从官方文档中获取的内容here http gitpython readthedocs org en latest tutorial html handli
  • Android File.exists() 不区分大小写吗?

    我创建了一个新文件夹 sdcard dd by File album new File albumPath if album exists Log d TAG albumPath already exists else boolean bF
  • OS X 上带有 fat 库的架构 x86_64 的未定义符号

    我已经建立了libcrypto a and libssl a我自己从来源处指定darwin64 x86 64 cc 对于 64 位 和darwin i386 cc 对于 32 位 至OpenSSL的配置脚本 创建了脂肪库lipo并将它们添加
  • 难道静态成员不会使类本身成为(全局)对象吗?

    每当我遇到单例模式或任何静态类 即 几乎 仅具有静态成员的类 的实现时 我想知道这是否实际上是一种黑客行为 因此严重滥用了类和实例的原则只是为了设计单个对象而不是设计类并创建单个实例 对我来说 看起来类的静态成员通常会尝试向类添加某种它们实
  • 套接字附加程序 - 基本示例一步一步[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • React router Link 标签的 target="_blank" 上的不同路由渲染

    即使链接将 to 属性设置为正确的路线 但单击时也不会加载 React router 中的另一条路由被加载到它的位置 这是代码 App js const isLoggedIn setIsLoggedIn React useState fal
  • 从距离矩阵开始查找 K 个最近邻

    我正在寻找一个接受良好优化的函数n X n距离矩阵并返回n X k矩阵的索引k第 i 行中第 i 个数据点的最近邻居 我发现了无数的不同R可以让您执行 KNN 的软件包 但它们似乎都在同一函数中包含距离计算和排序算法 特别是 对于大多数例程
  • 可以直接使用程序集访问缓存吗?

    就效率而言 缓存是一个核心问题 我知道缓存通常会自动发生 但是 我想自己控制缓存的使用 因为我认为我可以比一些不知道确切程序的启发式方法做得更好 因此 我需要汇编指令来直接移入或移出高速缓存单元 like movL1 address con
  • java中的HttpClient [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想使用一个简单的 HttpClient 然而 看来sun net www http HttpClien
  • php 中的短唯一 ID

    我想创建一个唯一的 ID 但是uniqid 正在给予类似的东西 492607b0ee414 我想要的是类似于tinyurl给出的东西 64k8ra 越短越好 唯一的要求是它不应该有明显的顺序 并且它应该看起来比看似随机的数字序列更漂亮 字母
  • 如何选择具有列名称的所有表并更新该列

    我想找到我的数据库中包含列名 Foo 的所有表 并将其值更新为 0 我在想这样的事情 但我不知道如何将 UPDATE 放在该代码上 我计划有关于 MySQL 数据库内的事件的这条语句 我使用的是 WAMP 这个想法基本上是每天运行一个事件
  • 角度资源不调用我的错误回调函数

    我已经这样做了几个小时 但我不明白为什么当我的 Rails 后端引发正确的错误时 Angular 没有触发我的错误回调 我正在使用角度 1 2 0rc1 根据文档 non GET class actions Resource action
  • Wordpress - 如何使 URL 返回具有自定义内容类型的动态 JSON?

    首先是一些背景知识 我尝试按照此处的说明进行操作 https developer apple com library archive documentation General Conceptual AppSearch UniversalL