'tag.htm'; break; case 'flag': $pre .= $default_pre .= 'flag.htm'; break; case 'my': $pre .= $default_pre .= 'my.htm'; break; case 'my_password': $pre .= $default_pre .= 'my_password.htm'; break; case 'my_bind': $pre .= $default_pre .= 'my_bind.htm'; break; case 'my_avatar': $pre .= $default_pre .= 'my_avatar.htm'; break; case 'home_article': $pre .= $default_pre .= 'home_article.htm'; break; case 'home_comment': $pre .= $default_pre .= 'home_comment.htm'; break; case 'user': $pre .= $default_pre .= 'user.htm'; break; case 'user_login': $pre .= $default_pre .= 'user_login.htm'; break; case 'user_create': $pre .= $default_pre .= 'user_create.htm'; break; case 'user_resetpw': $pre .= $default_pre .= 'user_resetpw.htm'; break; case 'user_resetpw_complete': $pre .= $default_pre .= 'user_resetpw_complete.htm'; break; case 'user_comment': $pre .= $default_pre .= 'user_comment.htm'; break; case 'single_page': $pre .= $default_pre .= 'single_page.htm'; break; case 'search': $pre .= $default_pre .= 'search.htm'; break; case 'operate_sticky': $pre .= $default_pre .= 'operate_sticky.htm'; break; case 'operate_close': $pre .= $default_pre .= 'operate_close.htm'; break; case 'operate_delete': $pre .= $default_pre .= 'operate_delete.htm'; break; case 'operate_move': $pre .= $default_pre .= 'operate_move.htm'; break; case '404': $pre .= $default_pre .= '404.htm'; break; case 'read_404': $pre .= $default_pre .= 'read_404.htm'; break; case 'list_404': $pre .= $default_pre .= 'list_404.htm'; break; default: $pre .= $default_pre .= theme_mode_pre(); break; } if ($config['theme']) { $conffile = APP_PATH . 'view/template/' . $config['theme'] . '/conf.json'; $json = is_file($conffile) ? xn_json_decode(file_get_contents($conffile)) : array(); } !empty($json['installed']) and $path_file = APP_PATH . 'view/template/' . $config['theme'] . '/htm/' . ($id ? $id . '_' : '') . $pre; (empty($path_file) || !is_file($path_file)) and $path_file = APP_PATH . 'view/template/' . $config['theme'] . '/htm/' . $pre; if (!empty($config['theme_child']) && is_array($config['theme_child'])) { foreach ($config['theme_child'] as $theme) { if (empty($theme) || is_array($theme)) continue; $path_file = APP_PATH . 'view/template/' . $theme . '/htm/' . ($id ? $id . '_' : '') . $pre; !is_file($path_file) and $path_file = APP_PATH . 'view/template/' . $theme . '/htm/' . $pre; } } !is_file($path_file) and $path_file = APP_PATH . ($dir ? 'plugin/' . $dir . '/view/htm/' : 'view/htm/') . $default_pre; return $path_file; } function theme_mode_pre($type = 0) { global $config; $mode = $config['setting']['website_mode']; $pre = ''; if (1 == $mode) { $pre .= 2 == $type ? 'portal_category.htm' : 'portal.htm'; } elseif (2 == $mode) { $pre .= 2 == $type ? 'flat_category.htm' : 'flat.htm'; } else { $pre .= 2 == $type ? 'index_category.htm' : 'index.htm'; } return $pre; } ?>custom post types - How to Grab Anime info using Jikan API and fill the value in Metabox
最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

custom post types - How to Grab Anime info using Jikan API and fill the value in Metabox

programmeradmin0浏览0评论

I want to create an Anime website. But I find it less effective if I have to manually copy & paste Anime information from MyAnimeList. So I want to create a system where users must enter the Anime ID from MyAnimeList and after that press the generate button, then automatically the desired Anime information will be filled in Metabox. Oh, my post_type is anime. Here's the endpoint:

/v3/anime/{id}

And this is my Metabox:

<?php
/* Metabox Tweak */
if ( ! function_exists( 'rwmb_meta' ) ) {
    function rwmb_meta( $key, $args = '', $post_id = null ) {
        return false;
    }
}

/* Anime Metabox */
function mal_metabox( $meta_boxes ) {
    $prefix = 'mal_';
    
    $meta_boxes[] = [
        'id' => 'anime_info',
        'title' => esc_html__( 'Anime Details' ),
        'post_types' => [ 'anime' ],
        'context' => 'advanced',
        'priority' => 'high',
        'autosave' => true,
        'fields' => [
            [
                'id' => $prefix . 'title_japanese',
                'type' => 'text',
                'name' => esc_html__( 'Japanese' ),
                'placeholder' => esc_html__( 'Japanese Title' ),
            ],
            [
                'id' => $prefix . 'title_english',
                'type' => 'text',
                'name' => esc_html__( 'English' ),
                'placeholder' => esc_html__( 'English Title' ),
            ],
            [
                'id' => $prefix . 'title_synonyms',
                'type' => 'text',
                'name' => esc_html__( 'Synonmys' ),
                'placeholder' => esc_html__( 'Synonyms Title' ),
            ],
            [
                'id' => $prefix . 'status',
                'type' => 'text',
                'name' => esc_html__( 'Status' ),
                'placeholder' => esc_html__( 'Anime Status' ),
            ],
            [
                'id' => $prefix . 'types',
                'type' => 'text',
                'name' => esc_html__( 'Type' ),
                'placeholder' => esc_html__( 'Anime Type' ),
            ],
            [
                'id' => $prefix . 'source',
                'type' => 'text',
                'name' => esc_html__( 'Source' ),
                'placeholder' => esc_html__( 'Anime Source' ),
            ],
            [
                'id' => $prefix . 'duration',
                'type' => 'text',
                'name' => esc_html__( 'Duration' ),
                'placeholder' => esc_html__( 'Anime Duration' ),
            ],
            [
                'id' => $prefix . 'episodes',
                'type' => 'text',
                'name' => esc_html__( 'Total Episodes' ),
                'placeholder' => esc_html__( 'Total Episodes' ),
            ],
            [
                'id' => $prefix . 'seasons',
                'type' => 'text',
                'name' => esc_html__( 'Seasons' ),
                'placeholder' => esc_html__( 'Seasons' ),
            ],
            [
                'id' => $prefix . 'studios',
                'type' => 'text',
                'name' => esc_html__( 'Studios' ),
                'placeholder' => esc_html__( 'Studios' ),
            ],
            [
                'id' => $prefix . 'producers',
                'type' => 'text',
                'name' => esc_html__( 'Producers' ),
                'placeholder' => esc_html__( 'Producers' ),
            ],
            [
                'id' => $prefix . 'releases',
                'type' => 'text',
                'name' => esc_html__( 'Releases' ),
                'placeholder' => esc_html__( 'Release Date' ),
            ],
            [
                'id' => $prefix . 'genres',
                'type' => 'text',
                'name' => esc_html__( 'Genres' ),
                'placeholder' => esc_html__( 'Genres' ),
            ],
            [
                'id' => $prefix . 'score',
                'type' => 'text',
                'name' => esc_html__( 'Score' ),
                'placeholder' => esc_html__( 'Score' ),
            ],
            [
                'id' => $prefix . 'synopsis',
                'type' => 'text_area',
                'name' => esc_html__( 'Synopsis' ),
                'placeholder' => esc_html__( 'Synopsis' ),
            ],
            [
                'id' => $prefix . 'poster',
                'type' => 'file_input',
                'name' => esc_html__( 'Poster' ),
                'desc' => esc_html__( 'Anime Poster' ),
                'max_file_uploads' => '1',
                'max_status' => false,
            ],
        ],
    ];
    return $meta_boxes;
}
add_filter('rwmb_meta_box', 'mal_metabox');

/* INPUT */
function generate_info($post) {
?>
<div class="rwmb-meta-box">
    <div class="rwmb-field rwmb-text-wrapper">
        <div class="rwmb-label">
            <label for="anime-id">Jikan API</label>     
        </div>
        <div class="rwmb-input ui-shortable">
            <div class="rwmb-clone rwmb-text-clone">
                <input size="30" type="text" id="anime-id" class="rwmb-text" name="anime-id" placeholder="Enter Anime ID"/>
            </div>
            <a class="button-primary" id="generate">Generate</a>
        </div>
    </div>
</div>
<?php
}

/* Show The Form */
function add_generate_info() {
    add_metabox('generate_anime', 'Generate Info', 'generate_info', 'anime');
}
add_action('add_meta_boxes', 'add_generate_info');
发布评论

评论列表(0)

  1. 暂无评论