- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个目前还没有任何功能的插件。这是当前的结构:
<?php
class Test
{
public function __construct()
{
}
}
$wpTest = new Test();
我想使用 Carbon Fields WordPress 插件。安装后,我根据网站上的说明更改了结构,只是适配了 OOP。
<?php
use Carbon_Fields\Container;
use Carbon_Fields\Field;
class Test
{
public function __construct()
{
add_action( 'carbon_fields_register_fields', array( $this, 'crb_attach_theme_options') );
add_action( 'after_setup_theme', array( $this , 'crb_load' ) );
}
public function crb_load()
{
require_once( 'vendor/autoload.php' );
\Carbon_Fields\Carbon_Fields::boot();
}
public function crb_attach_theme_options()
{
Container::make( 'theme_options', __( 'Plugin Options', 'crb' ) )
->add_fields( array(
Field::make( 'text', 'crb_text', 'Text Field' ),
) );
}
}
$wpTest = new Test();
它不起作用。我该如何解决?
最佳答案
answer从作者自己可能会为他自己的特定目的工作的问题。
但是如果你问这个问题很长,你很可能想在你自己的插件中集成 Carbon Fields(由于这个问题的语言化)。在这种情况下,(至少)有一个问题您应该注意,即您的碳场数据可用的时间点;如果您想在执行插件时检索 Carbon Fields 数据。
TL;DR:在 carbon_fields_fields_registered
中,操作 Hook 是您可以获得碳字段值的最早阶段。这些字段首先必须在 carbon_fields_register_fields
操作 Hook 中定义。有关其他说明,您还可以查看 this answer .
所以这是一个确保有正确时间的 Bootstrap :
use Carbon_Fields\Container;
use Carbon_Fields\Field;
class YourFancyPlugin
{
public function __construct()
{
add_action( 'after_setup_theme', array( $this,
'load_carbon_fields'
) );
add_action( 'carbon_fields_register_fields', array( $this,
'register_carbon_fields'
) );
/* will succesfuly retrieve the data of the fields registered at
* carbon_fields_register_fields action hook
* if you retrieve the data before carbon_fields_fields_registered action hook
* has fired it won't work
*/
add_action( 'carbon_fields_fields_registered', array( $this,
// picked this name only to emphasize whats going on
'carbon_fields_values_are_available'
) );
/* do all the stuff that doesn't rely on values of your Carbon Fields */
}
public function load_carbon_fields()
{
require_once 'vendor/autoload.php'; // modify depending on your actual setup
\Carbon_Fields\Carbon_Fields::boot();
}
public function register_carbon_fields()
{
Container::make( 'theme_options', 'YourFancyPlugin options' )
-> add_fields( array(
Field::make( 'text', 'YourFancyPlugin_option_1')
) );
}
public function carbon_fields_values_are_available()
{
/* retrieve the values of your Carbon Fields related to your plugin */
var_dump( carbon_get_theme_option( 'YourFancyPlugin_option_1' ) );
/* do all the stuff that does rely on values of your Carbon Fields */
}
}
new YourFancyPlugin();
关于php - 在自定义插件类中使用 Carbon Fields,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45821726/
我正在尝试避免放置 use Carbon\Carbon;在我使用 Carbon 的每个 php 文件中。有没有办法在一行中到处使用 Carbon\Carbon? require 'vendor/aut
Laravel 5.5 在我的 app.php 文件中,我定义了一个别名 'aliases' => [ ... 'Carbon' => Carbon\Carbon::class, ], 但是当
Laravel 5.5 在我的 app.php 文件中,我定义了一个别名 'aliases' => [ ... 'Carbon' => Carbon\Carbon::class, ], 但是当
Carbon 中的Array 和Slice 有什么区别?我找到一个document来自官方 repo 。但是,目前尚未完成。 以下是来自 Carbon official repo 的示例代码. //
我得到一个包含 [80] => Array ( [date] => Carbon\Carbon Object
我已经搜索过了,我确实找到了一些讨论这个问题的主题,但是我觉得没有一个是我想要的,所以我希望在这里得到更好的建议。 我想获取用户上次更新时间的时间戳。 $user->updated_at 如果我运行它
我最近向我的 Laravel 4 网站添加了一个包,现在任何使用 Eloquent(或至少 Eloquent 并带有任何日期/时间引用)的东西都显示 500 错误,指出: Class 'Carbon\
我从数据库中检索日期并可以选择对它们进行预处理(通过 Laravel 框架 (v5.2))。日期或时间可以采用任何特定格式,但在本例中,我们假设 Y-m-d . 我希望能够在 View 中以 Carb
所以目前我撤回一个日期并将其转换为 carbon 中的可读格式: Letter Sent: @if (is_null($Client->letter_posted)) @else {{
我想使用这个 Carbon 函数:Carbon::now()->subDays(5)->diffForHumans() 我需要创建正确的整数。 我正在加载一个带有日期时间的字符串,我想在 Larave
我一直在从事 Laravel 项目。当我运行 composer 命令时,我总是收到警告, Carbon 1 is deprecated, see how to migrate to Carbon 2.
我最近运行 sudo composer update 现在在我的一个页面上,我不断收到 我用过 $now = Carbon\Carbon::now('America/New_York'); 在我的 H
在 Laravel Artisan Tinker 中运行以下命令时: $article = new App\Article; $article->published_at = Carbon\Carbo
我是 Objective-C 的新手,我正在尝试使用来自 TextInputSources 的方法所以我试过了 #import 和 #import 没有这些作品。有什么我想念的吗?我正在使用 Xc
我正在将 openfire(3.9.3) 与 strope.js 一起使用,我想实现消息复写功能以支持多设备登录。 我已关注http://xmpp.org/extensions/xep-0280.ht
我正在尝试将我制作的项目部署到 Heroku,但是当我尝试使用以下内容推送项目时: git push heroku master 它最终给了我一个看起来像这样的错误: appscript_3x/ext
我在尝试安装 libvlc 时遇到上述错误: C:\>easy_install vlc Searching for vlc Best match: vlc 0.0.1 Adding vlc 0.0.1
我已经创建了一个Next.js应用程序,其中包含:。我已经使用以下选项设置了包:。我已经使用以下代码修改了app/lobals.scss:。我有这个主页:。这是我的SigIn组件:。当我运行npm r
我正在使用 Laravel 5.8。 我在文件 /var/www/html/admin/vendor/nesbot/carbon/src/Carbon/Traits/Units.php 行中遇到异常
我正在尝试运行一个 hello world SWT 应用程序: public static void main(String args[]) throws IOException{ Displ
我是一名优秀的程序员,十分优秀!