-
Notifications
You must be signed in to change notification settings - Fork 0
/
acf-json-field.php
88 lines (66 loc) · 2.74 KB
/
acf-json-field.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
<?php
/**
* Plugin Name: ACF JSON Field
* Description: A custom ACF field type for manipulating JSON data
* Text Domain: acf-json-field
* Author: Misaki F.
* Version: 1.0.7
*/
namespace AcfJsonField;
if (!defined('ABSPATH')) {
return;
}
################################################################################
# @title Constants
################################################################################
define('ACF_JSON_FIELD_VERSION', '1.0.7');
################################################################################
# @title Inclusions
################################################################################
require_once(__DIR__ . '/includes/init.php');
require_once(__DIR__ . '/includes/plugin-update-checker/plugin-update-checker.php');
################################################################################
# @title Assets
################################################################################
########################################
## @subtitle Backend
########################################
add_action('acf/input/admin_enqueue_scripts', function () {
$url_dir = plugin_dir_url(__FILE__);
wp_enqueue_style('acf-json-field-admin-css', $url_dir . 'assets/css/ajf-admin.css', [], ACF_JSON_FIELD_VERSION);
wp_enqueue_script('acf-json-field-admin-js', $url_dir . 'assets/js/ajf-admin.js', ['jquery', 'acf-input'], ACF_JSON_FIELD_VERSION, true);
});
add_filter('script_loader_tag', function ($tag, $handle, $src) {
if ($handle === 'acf-json-field-admin-js') {
$tag = '<script type="module" src="' . esc_url($src) . '"></script>';
}
return $tag;
}, 10, 3);
########################################
## @subtitle Frontend
########################################
add_action('wp_enqueue_scripts', function () {
$url_dir = plugin_dir_url(__FILE__);
wp_enqueue_style('acf-json-field-css', $url_dir . 'assets/css/ajf.css', [], ACF_JSON_FIELD_VERSION);
});
################################################################################
# @title Update checker
################################################################################
$update_checker = \YahnisElsts\PluginUpdateChecker\v5\PucFactory::buildUpdateChecker(
'https://github.com/misaki-web/acf-json-field',
__FILE__,
'acf-json-field'
);
$update_checker->getVcsApi()->enableReleaseAssets();
################################################################################
# @title Shortcode
################################################################################
# Render the shortcode "acf_json_field".
add_shortcode('acf_json_field', function ($atts = []) {
$default_atts = [
'field' => '',
'id' => null,
];
$atts = shortcode_atts($default_atts, $atts);
return JsonUtils::get_json_field($atts['field'], $atts['id'], 'html');
});