使用Composer安装高级Wordpress主题



我在Themeforest:Avada上买了一个"高级"主题。我想用Composer安装这个主题,因为它是一个依赖项(我使用Bedrock作为基础)。因此,我看到了这篇文章,他们建议制作一个带有下载链接的自定义包(例如,有一些自己的Wordpress插件WP Migrate DB Pro):

"require": {
    "deliciousbrains/wp-migrate-db-pro": "*"
},
"repositories": [
    {
        "type": "package",
        "package": {
            "name": "deliciousbrains/wp-migrate-db-pro",
            "type": "wordpress-plugin",
            "version": "1.5",
            "dist": {
                "type": "zip",
                "url": "https://deliciousbrains.com/dl/wp-migrate-db-pro-latest.zip?licence_key=<LICENSE_KEY>&site_url=composer-test.dev"
            },
            "require": {
                "composer/installers": "v1.0.7"
            }
        }
    }
]

很好,但我必须自己维护版本号(我不能下载旧版本),而且我不太喜欢url中的许可证密钥。但好吧,我已经试过了,但我需要先登录Theme,否则下载链接(类似http://themeforest.net/user/username/download_purchase/some-random-id?accessor=wordpress_theme的东西)将不起作用。我可以尝试追踪下载链接,但Envato建议不要使用下载管理器,所以我认为这是不允许的,也不应该这样做。我过去曾联系过Envato,因为他们建议在Tusplus教程网站上使用Composer,但他们在市场网站上不支持这一点。一直没有得到回复。

另一种方法是为Avada创建我自己的GIT存储库。没问题,所以我创建了它,用我自己的composer.json文件添加了所有文件:

{
    "name": "username/wordpress-avada-theme",
    "type": "wordpress-theme"
}

很简单,在版本中添加了一个GIT标记,就可以安装了。非常好!但是我必须自己维护,如果Avada发布了新版本,我必须从我的Avada存储库中删除所有文件,添加带有新版本号标签的新文件,然后我可以用Composer安装新版本。

另一个问题:插件,Avada附带了一些需要安装的插件:

  • Fusion Core
  • Layerslider
  • 旋转滑块

所以我还需要3个存储库,如果有新版本出现,我必须对它们进行维护。所以我联系了主题融合,主题的创造者。我不认为他们不能使用版本控制,这是真的,他们使用GIT,但由于Envato的条件,他们不允许我访问。

我还有什么其他选择?我现在只是在Wordpress本身和所有免费插件中使用Composer,但我也想把它用于我的"高级"东西。作曲家应该让事情变得更容易,但当我必须维护这些回购时,事实并非如此。所以现在我已经把Avada和它的插件放在了项目回购中,但感觉不太好。

编辑:同时,我在Envato API中发现了一些有趣的东西,可以实现这一点,请参阅我在wpackagist存储库上的问题,它是Wordpress插件和主题目录的Composer镜像。

SatisPress就是您想要的。这是一个允许你的工具

将已安装的WordPress插件和主题公开为Composer包。

它很容易设置和使用:

  1. 设置WordPress实例(例如packages.example.com
  2. 安装并激活SatisPress
  3. 安装并激活高级/付费软件包(插件/主题)
  4. 提供许可证凭据以启用自动更新
  5. 添加访问令牌
  6. 将存储库和凭据添加到composer.json/auth.json(或Private Packagist镜像)
  7. 需要这样的高级套餐:$ composer require satispress/my-private-plugin

有关更多详细信息,请参阅文档:https://github.com/cedaro/satispress/blob/develop/docs/index.md

注:我不隶属于SatisPress或Private Packagist。

我正在测试一个更好的解决方案。在这里注册。

虽然它目前不会处理嵌套的依赖项(Fusion Slider、Fusion Builder等),但它将允许您通过Composer管理Avada(或其他Envato购买),并正确使用版本约束:

composer require theme-fusion/avada

或者类似的东西。

尽管Avada特别搞砸了这一点,因为他们的补丁更新超出了正常WordPress更新的范围。更不用说这些了。

我经常看到人们将购买的内容置于源代码管理之下,以便在引入新版本时对其进行代码审查。然而,我认为私有包的常见做法是使用私有存储库。

当私有包中包含composer.json文件时,有一些选项。不幸的是,WordPress通常不是这样。您可以将packages.json文件放在Web服务器上,将该URL用作composer存储库。

composer源中的测试夹具可以用作该文件中预期内容的示例。我倾向于省略version_normalized字段,并提供与source相反的dist信息(两者都可以提供)。

我过去所做的是将所有包放置在一个内部服务器上,该服务器具有反映相关元数据的命名约定,因此可以从bash脚本轻松生成composer存储库。

类似/archives/{package-type}/{vendor}/{name}_{version}.zip 的东西

现在您可以使用此Composer插件安装从Envato购买的主题和插件https://packagist.org/packages/szepeviktor/composer-envato

composer require envato/avada

您需要在全局范围内安装composer-envato!有关配置,请参阅自述文件。

相关内容

  • 没有找到相关文章

最新更新