Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wordpress自定义元框数组_Wordpress_Custom Post Type_Meta Boxes - Fatal编程技术网

Wordpress自定义元框数组

Wordpress自定义元框数组,wordpress,custom-post-type,meta-boxes,Wordpress,Custom Post Type,Meta Boxes,我试图在Wordpress中创建一个自定义元框,用于存储文章的附加链接。因为我不知道最后会有多少链接,所以我创建了一个按钮,用于向元框添加字段 新字段用javascript呈现,存储字段用php呈现。这是不是因为它可以干,但我没有找到另一种方法,它应该工作 代码运行时不会引发错误,但数组未正确保存打印(当前的附加链接)此时只打印“数组”。还有一个问题困扰着我:data count=”“是“1”,即使帖子还没有保存。非常感谢您的帮助!这就是我取得的成绩: /** * Add meta box

我试图在Wordpress中创建一个自定义元框,用于存储文章的附加链接。因为我不知道最后会有多少链接,所以我创建了一个按钮,用于向元框添加字段

新字段用javascript呈现,存储字段用php呈现。这是不是因为它可以干,但我没有找到另一种方法,它应该工作

代码运行时不会引发错误,但数组未正确保存<代码>打印(当前的附加链接)此时只打印“数组”。还有一个问题困扰着我:
data count=”“
是“1”,即使帖子还没有保存。非常感谢您的帮助!这就是我取得的成绩:

/**
 * Add meta box to
 * svl_editions post type for additional links
 * @param post $post The post object
 * @link https://codex.wordpress.org/Plugin_API/Action_Reference/add_meta_boxes
 */
function svl_add_meta_box_additional_links($post) {
  add_meta_box(
    'svl_meta_box_additional_links',
    __('Additional Links', 'stilvorlagen-functions'),
    'svl_render_meta_box_additional_links',
    'svl_referents',
    'side',
    'low'
  );
}
add_action('add_meta_boxes_svl_referents', 'svl_add_meta_box_additional_links');


/**
 * Render part of custom field meta box for
 * svl_editions post type for additional links
 * look in scripts/svl-admin-additional-links.php for the rest
 * @param post $post The post object
 */
function svl_render_meta_box_additional_links($post) {
  wp_nonce_field(plugin_basename(__FILE__), 'svl_meta_box_additional_links_nonce');

  $current_svl_additional_links = get_post_meta($post->ID, '_svl_additional_links', true);
  print_r($current_svl_additional_links);

  ?>
  <div class="EntriesContainer" data-count="<?php echo count($current_svl_additional_links); ?>" id="itemsList">
    <?php
    $i = 0;
    if (count($current_svl_additional_links) > 0) {
      foreach((array)$current_svl_additional_links as $current_svl_additional_link) {
        if (isset($current_svl_additional_link['link_name']) || isset($current_svl_additional_link['link_url'])) {
          ?>
          <div class="svl-additional-link-item">
            <p><strong><?php echo $i; ?>. Link </strong><span class="remove"> (Entfernen)</span></p>

            <label for="svl_additional_links[<?php echo $i ?>][link_name]"><?php _e('Link-Name', 'stilvorlagen-functions') ?></label>
            <input type="text" id="svl_additional_links[<?php echo $i ?>][link_name]" name="svl_additional_links[<?php echo $i ?>][link_name]" value="<?php echo esc_attr($current_svl_additional_link['link_name']) ?>" size="15" />

            <label for="svl_additional_links[<?php echo $i ?>][link_url]"><?php _e('Link-URL', 'stilvorlagen-functions') ?></label>
            <input type="text" id="svl_additional_links[<?php echo $i ?>][link_url]" name="svl_additional_links[<?php echo $i ?>][link_url]" value="<?php echo esc_attr($current_svl_additional_link['link_url']) ?>" size="15" />
            <br/>
          </div>
          <?php
          ++$i;
        }
      }
    } ?>
  </div>
  <div class=add-additional-link-action>
    <button type="button" class="button" id="addNewItem">Add New Link</button>
  </div><?php
}


/**
 * Store custom field meta box data
 * @param int $post_id The post ID.
 * @link https://codex.wordpress.org/Plugin_API/Action_Reference/save_post
 */
function svl_save_meta_box_additional_links($post_id) {
  // verify taxonomies meta box nonce
  if (!is_valid_user_input(array('svl_meta_box_additional_links_nonce'), $post_id)) {
    return;
  }

  // Make sure that everything is set.
  if (! isset($_POST['svl_additional_links'])) {
    SVLMessagePipeline::push_error('Input fields missing.');
    delete_post_meta($post_id, 'svl_additional_links');
    return;
  }

  // store custom fields values
  $additional_links = sanitize_text_field($_POST['svl_additional_links']);

  update_post_meta($post_id, '_svl_additional_links', $additional_links);
}
add_action('save_post_svl_referents', 'svl_save_meta_box_additional_links');
/**
*将元框添加到
*附加链接的svl_版本发布类型
*@param post$post发布post对象
*@linkhttps://codex.wordpress.org/Plugin_API/Action_Reference/add_meta_boxes
*/
函数svl\u添加\u元\u框\u附加\u链接($post){
添加元框(
“svl_meta_box_附加链接”,
__(“附加链接”、“stilvorlagen函数”),
“svl_渲染_元_框_附加链接”,
“svl_参照物”,
"一边",,
“低”
);
}
add_action(“add_meta_box_svl_referents”,“svl_add_meta_box_additional_links”);
/**
*渲染的自定义字段元框的一部分
*附加链接的svl_版本发布类型
*其余内容请查看scripts/svl-admin-additional-links.php
*@param post$post发布post对象
*/
函数svl_渲染_元_框_附加链接($post){
wp_nonce_字段(plugin_basename(uuu FILE_uuuu),“svl_meta_box_additional_links_nonce”);
$current_svl_additional_links=get_post_meta($post->ID,'u svl_additional_links',true);
打印(当前的附加链接);
?>
/**
 * Render part of the custom field meta box for
 * svl_editions post type for additional links
 * look in svl-post-meta.php for the rest
 * @param post $post The post object
 */
(function($) {
  // Namespace-object to keep global scope clean:
  var add_additional_link = (function () {
    "use strict";
    var pub = {}, // Stands for public, gets returned
      timer, addNewItemButton, totalItems

    pub.init = function () {
      addNewItemButton = $("#addNewItem");
      $(addNewItemButton).on('click', pub.addNewItem);
      totalItems = parseInt($('#itemsList').attr('data-count'));
    };

    $(".remove").live('click', function() {
        $(this).parent().parent().remove();
    });

    $(document).ready( function () {
        pub.init();
    });

    pub.addNewItem = function(e) {
      e.preventDefault();

      ++totalItems;

      var $newItem =
        '<div class="svl-additional-link-item">' +
          '<p><strong>' + totalItems + '. Link</strong><span class="remove"> (Entfernen)</span></p>' +

          '<label for="svl_additional_links[' + totalItems + '][link_name]">Link-Name</label>' +
          '<input type="text" id="svl_additional_links[' + totalItems + '][link_name]" name="svl_additional_links[' + totalItems + '][link_name]" value="" size="15" />' +

          '<label for="svl_additional_links[' + totalItems + '][link_url]">Link-URL</label>' +
          '<input type="text" id="svl_additional_links[' + totalItems + '][link_url]" name="svl_additional_links[' + totalItems + '][link_url]" value="" size="15" />' +
          '<br/>'
        '</div>';

      $('#itemsList').append($newItem);
    };

    return pub;
  }());
}(jQuery))