質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

受付中

Wordpress welcart及びAdvanced Custom Fieldsの連携について

kitikiti
kitikiti

総合スコア0

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

1回答

0評価

0クリップ

20閲覧

投稿2019/06/15 03:27

カスタムフィールドを使用するためにAdvanced Custom Fieldsのプラグインを利用して作成を行っていますが、フィールドグループで作成した他ののテンプレートまでが出てきてしまいます。
このフィールドグループを表示する条件(位置ルール)処理が全く反応していないようです。
作成したフィールドが全てwelcat(商品マスター編集画面)上に出てきてしまいます。
更新ができず困っています。
どのようにファイルを変更すればいいでしょうか。

下記フォーラムにて添付されているファイルを使用し利用しています。
https://www.welcart.com/community/forums/topic/advanced-custom-fields-%E3%81%A8%E3%81%AE%E9%80%A3%E5%8B%95%E3%81%AB%E9%96%A2%E3%81%97%E3%81%BE%E3%81%97%E3%81%A6

おそらくこのファイルをいじればなると思うのですが、よくわからず現在困っております。
おわかりになる方ご教授お願い致します。

php

function admin_head() { // vars $style_found = false; // get field groups $field_groups = acf_get_field_groups(); // add meta boxes if( !empty($field_groups) ) { foreach( $field_groups as $i => $field_group ) { // vars $id = "acf-{$field_group['key']}"; $title = $field_group['title']; $context = $field_group['position']; $priority = 'high'; $args = array( 'field_group' => $field_group, 'visibility' => false ); // tweaks to vars if( $context == 'side' ) { $priority = 'core'; } // filter for 3rd party customization $priority = apply_filters('acf/input/meta_box_priority', $priority, $field_group); // visibility $args['visibility'] = acf_get_field_group_visibility( $field_group, array( 'post_id' => $this->post_id, 'post_type' => $this->typenow )); // add meta box add_meta_box( $id, $title, array($this, 'render_meta_box'), $this->typenow, $context, $priority, $args ); // update style if( !$style_found && $args['visibility'] ) { $style_found = true; $this->style = acf_get_field_group_style( $field_group ); } } } // Allow 'acf_after_title' metabox position add_action('edit_form_after_title', array($this, 'edit_form_after_title')); // remove ACF from meta postbox add_filter('is_protected_meta', array($this, 'is_protected_meta'), 10, 3); } コード

php

/* * edit_form_after_title * * This action will allow ACF to render metaboxes after the title * * @type action * @date 17/08/13 * * @param n/a * @return n/a */ function edit_form_after_title() { // globals global $post, $wp_meta_boxes; // render post data acf_form_data(array( 'post_id' => $this->post_id, 'nonce' => 'post', 'ajax' => 1 )); // render do_meta_boxes( get_current_screen(), 'acf_after_title', $post); // clean up unset( $wp_meta_boxes['post']['acf_after_title'] ); } /* * render_meta_box * * description * * @type function * @date 20/10/13 * @since 5.0.0 * * @param $post_id (int) * @return $post_id (int) */ function render_meta_box( $post, $args ) { // extract args extract( $args ); // all variables from the add_meta_box function extract( $args ); // all variables from the args argument // vars $o = array( 'id' => $id, 'key' => $field_group['key'], 'style' => $field_group['style'], 'label' => $field_group['label_placement'], 'edit_url' => '', 'edit_title' => __('Edit field group', 'acf'), 'visibility' => $visibility ); // edit_url if( $field_group['ID'] && acf_current_user_can_admin() ) { $o['edit_url'] = admin_url('post.php?post=' . $field_group['ID'] . '&action=edit'); } // load and render fields if( $visibility ) { // load fields $fields = acf_get_fields( $field_group ); // render acf_render_fields( $this->post_id, $fields, 'div', $field_group['instruction_placement'] ); // render replace-me div } else { echo '<div class="acf-replace-with-fields"><div class="acf-loading"></div></div>'; } ?> <script type="text/javascript"> if( typeof acf !== 'undefined' ) { acf.postbox.render(<?php echo json_encode($o); ?>); } </script> <?php } /* * admin_footer * * description * * @type function * @date 21/10/13 * @since 5.0.0 * * @param $post_id (int) * @return $post_id (int) */ function admin_footer(){ // get style of first field group echo '<style type="text/css" id="acf-style">' . $this->style . '</style>'; } /* * get_field_groups * * This function will return all the JSON data needed to render new metaboxes * * @type function * @date 21/10/13 * @since 5.0.0 * * @param n/a * @return n/a */ function get_field_groups() { // options $options = acf_parse_args($_POST, array( 'nonce' => '', 'post_id' => 0, 'ajax' => 1, 'exists' => array() )); // vars $json = array(); $exists = acf_extract_var( $options, 'exists' ); // verify nonce if( !acf_verify_ajax() ) die(); // get field groups $field_groups = acf_get_field_groups( $options ); // bail early if no field groups if( empty($field_groups) ) { wp_send_json_success( $json ); } // loop through field groups foreach( $field_groups as $i => $field_group ) { // vars $item = array( //'ID' => $field_group['ID'], - JSON does not have ID (not used by JS anyway) 'key' => $field_group['key'], 'title' => $field_group['title'], 'html' => '', 'style' => '' ); // style if( $i == 0 ) { $item['style'] = acf_get_field_group_style( $field_group ); } // html if( !in_array($field_group['key'], $exists) ) { // load fields $fields = acf_get_fields( $field_group ); // get field HTML ob_start(); // render acf_render_fields( $options['post_id'], $fields, 'div', $field_group['instruction_placement'] ); $item['html'] = ob_get_clean(); } // append $json[] = $item; } // return wp_send_json_success( $json ); } /* * wp_insert_post_empty_content * * This function will allow WP to insert a new post without title / content if ACF data exists * * @type function * @date 16/07/2014 * @since 5.0.1 * * @param $maybe_empty (bool) whether the post should be considered "empty" * @param $postarr (array) Array of post data * @return $maybe_empty */ function wp_insert_post_empty_content( $maybe_empty, $postarr ) { if( $maybe_empty && !empty($_POST['_acfchanged']) ) { $maybe_empty = false; } // return return $maybe_empty; } /* * allow_save_post * * This function will return true if the post is allowed to be saved * * @type function * @date 26/06/2016 * @since 5.3.8 * * @param $post_id (int) * @return $post_id (int) */ function allow_save_post( $post ) { // vars $allow = true; $reject = array( 'auto-draft', 'revision', 'acf-field', 'acf-field-group' ); $wp_preview = acf_maybe_get($_POST, 'wp-preview'); // check post type if( in_array($post->post_type, $reject) ) $allow = false; // allow preview if( $post->post_type == 'revision' && $wp_preview == 'dopreview' ) $allow = true; // return return $allow; } /* * save_post * * This function will validate and save the $_POST data * * @type function * @date 23/06/12 * @since 1.0.0 * * @param $post_id (int) * @return $post_id (int) */ function save_post( $post_id, $post ) { // bail ealry if no allowed to save this post type if( !$this->allow_save_post($post) ) return $post_id; // ensure saving to the correct post // if( !acf_verify_nonce('post', $post_id) ) return $post_id; // validate for published post (allow draft to save without validation) if( $post->post_status == 'publish' ) { // show errors acf_validate_save_post( true ); } // save acf_save_post( $post_id ); // save revision if( post_type_supports($post->post_type, 'revisions') ) { acf_save_post_revision( $post_id ); } // return return $post_id; } /* * is_protected_meta * * This function will remove any ACF meta from showing in the meta postbox * * @type function * @date 12/04/2014 * @since 5.0.0 * * @param $post_id (int) * @return $post_id (int) */ function is_protected_meta( $protected, $meta_key, $meta_type ) { // if acf_get_field_reference returns a valid key, this is an acf value, so protect it! if( !$protected ) { $reference = acf_get_field_reference( $meta_key, $this->post_id ); if( acf_is_field_key($reference) ) { $protected = true; } } // return return $protected; } } endif; // class_exists check global $acf; if( $acf ){ new acf_form_welcart_item(); } コード

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。