【问题标题】:Duplicate div in phpphp中重复的div
【发布时间】:2021-09-29 04:55:38
【问题描述】:

我在 WordPress 中创建了这个 PHP 代码来将图像添加到菜单中,但是它复制了一个 div,其中有一个添加按钮,我不知道为什么,我需要它只是一个而不是两个结果div,以防我只想要左边的 div……我会添加一张关于我在说什么的图片,这样你就可以分析我的问题了! 结构放置在函数wp_post_thumbnail_only_html内 我只留下了传递按钮的动作以方便。

<?php
if ( !defined( 'ABSPATH' ) ) {
    exit;
}

class SNAP_Menu_Image{



    public function __construct() {

    
        add_action( 'admin_init', array( $this, 'admin_init' ), 99 );

    }

    public function admin_init() {
        if ( !has_action( 'wp_nav_menu_item_custom_fields' ) ) {
        }
        add_action( 'wp_nav_menu_item_custom_fields', array( $this, 'menu_item_custom_fields' ), 10, 4 );
    }

    public function file_is_displayable_image( $result, $path ) {
        if ( $result ) {
            return true;
        }
        $fileExtension = pathinfo( $path, PATHINFO_EXTENSION );

        return in_array( $fileExtension, $this->additionalDisplayableImageExtensions );
    }

    public function menu_image_init() {
        add_post_type_support( 'nav_menu_item', array( 'thumbnail' ) );

        $this->image_sizes = apply_filters( 'menu_image_default_sizes', $this->image_sizes );
        if (is_array($this->image_sizes)) {
            foreach ($this->image_sizes as $name => $params) {
                add_image_size($name, $params[0], $params[1], ( array_key_exists(2, $params) ? $params[2] : false ) );
            }
        }
        load_plugin_textdomain( 'menu-image', false, basename( dirname( __FILE__ ) ) . '/languages' );
    }

    public function menu_image_nav_menu_manage_columns( $columns ) {
        return $columns + array( 'image' => __( 'Image', 'menu-image' ) );
    }

    public function menu_image_save_post_action( $post_id, $post ) {
        $menu_image_settings = array(
            'menu_item_image_size',
            'menu_item_image_title_position'
        );
        foreach ( $menu_image_settings as $setting_name ) {
            if ( isset( $_POST[ $setting_name ][ $post_id ] ) && !empty( $_POST[ $setting_name ][ $post_id ] ) ) {
                if ( $post->{"_$setting_name"} != $_POST[ $setting_name ][ $post_id ] ) {
                    update_post_meta( $post_id, "_$setting_name", esc_sql( $_POST[ $setting_name ][ $post_id ] ) );
                }
            }
        }
    }

    public function wp_update_nav_menu_item_action( $item_menu_id, $menu_item_db_id ) {
        global $sitepress, $icl_menus_sync;
        if ( class_exists( 'SitePress' ) && $sitepress instanceof SitePress && class_exists( 'ICLMenusSync' ) && $icl_menus_sync instanceof ICLMenusSync ) {
            static $run_times = array();
            $menu_image_settings = array(
                'menu_item_image_size',
                'menu_item_image_title_position',
                'thumbnail_id',
                'thumbnail_hover_id',
            );

            foreach ( $icl_menus_sync->menus as $menu_id => $menu_data ) {
                if ( !isset( $_POST[ 'sync' ][ 'add' ][ $menu_id ] ) ) {
                    continue;
                }

                $cache_key   = md5( serialize( array( $item_menu_id, 'tax_nav_menu' ) ) );
                $cache_group = 'get_language_for_element';
                wp_cache_delete( $cache_key, $cache_group );
                $lang = $sitepress->get_language_for_element( $item_menu_id, 'tax_nav_menu' );

                if ( !isset( $run_times[ $menu_id ][ $lang ] ) ) {
                    $run_times[ $menu_id ][ $lang ] = 0;
                }

            
                $post_item_ids = array();
                foreach ( $_POST[ 'sync' ][ 'add' ][ $menu_id ] as $id => $lang_array ) {
                    if ( array_key_exists( $lang, $lang_array ) ) {
                        $post_item_ids[ ] = $id;
                    }
                }
                if ( !array_key_exists( $run_times[ $menu_id ][ $lang ], $post_item_ids ) ) {
                    continue;
                }
                $orig_item_id = $post_item_ids[ $run_times[ $menu_id ][ $lang ] ];

                $orig_item_meta = get_metadata( 'post', $orig_item_id );
                foreach ( $menu_image_settings as $meta ) {
                    if ( isset( $orig_item_meta[ "_$meta" ] ) && isset( $orig_item_meta[ "_$meta" ][ 0 ] ) ) {
                        update_post_meta( $menu_item_db_id, "_$meta", $orig_item_meta[ "_$meta" ][ 0 ] );
                    }
                }
                $run_times[ $menu_id ][ $lang ] ++;
                break;
            }
        }
    }

    public function menu_image_edit_nav_menu_walker_filter() {
        return 'Menu_Image_Walker_Nav_Menu_Edit';
    }

    public function menu_image_wp_setup_nav_menu_item( $item ) {
        if ( !isset( $item->thumbnail_id ) ) {
            $item->thumbnail_id = get_post_thumbnail_id( $item->ID );
        }
        if ( !isset( $item->thumbnail_hover_id ) ) {
            $item->thumbnail_hover_id = get_post_meta( $item->ID, '_thumbnail_hover_id', true );
        }
        if ( !isset( $item->image_size ) ) {
            $item->image_size = get_post_meta( $item->ID, '_menu_item_image_size', true );
        }
        if ( !isset( $item->title_position ) ) {
            $item->title_position = get_post_meta( $item->ID, '_menu_item_image_title_position', true );
        }

        return $item;
    }

    public function menu_image_nav_menu_link_attributes_filter( $atts, $item, $args, $depth = null ) {
        $this->setProcessed( $item->ID );
        $position = $item->title_position ? $item->title_position : apply_filters( 'menu_image_default_title_position', 'after' );
        $class    = ! empty( $atts[ 'class' ] ) ? $atts[ 'class' ] : '';
        $class    .= " menu-image-title-{$position}";
        if ( $item->thumbnail_hover_id ) {
            $class .= ' menu-image-hovered';
        } elseif ( $item->thumbnail_id ) {
            $class .= ' menu-image-not-hovered';
        }
        if ( ! empty( $args->walker ) && class_exists( 'FlatsomeNavDropdown' ) && $args->walker instanceof FlatsomeNavDropdown && ! is_null( $depth ) && $depth === 0 ) {
            $class .= ' nav-top-link';
        }
        $atts[ 'class' ] = trim( $class );

        return $atts;
    }

    public function menu_image_nav_menu_item_title_filter( $title, $item, $depth = null, $args = null) {
        if (is_numeric($item)) {
            $item = wp_setup_nav_menu_item( get_post( $item ) );
        }
        $image_size = $item->image_size ? $item->image_size : apply_filters( 'menu_image_default_size', 'menu-36x36' );
        $position   = $item->title_position ? $item->title_position : apply_filters( 'menu_image_default_title_position', 'after' );
        $class      = "menu-image-title-{$position}";
        $this->setUsedAttachments( $image_size, $item->thumbnail_id );
        $image = '';
        if ( $item->thumbnail_hover_id ) {
            $this->setUsedAttachments( $image_size, $item->thumbnail_hover_id );
            $hover_image_src = wp_get_attachment_image_src( $item->thumbnail_hover_id, $image_size );
            $margin_size     = $hover_image_src[ 1 ];
            $image           = "<span class='menu-image-hover-wrapper'>";
            $image .= wp_get_attachment_image( $item->thumbnail_id, $image_size, false, "class=menu-image {$class}" );
            $image .= wp_get_attachment_image(
                $item->thumbnail_hover_id, $image_size, false, array(
                    'class' => "hovered-image {$class}",
                    'style' => "margin-left: -{$margin_size}px;",
                )
            );
            $image .= '</span>';;
        } elseif ( $item->thumbnail_id ) {
            $image = wp_get_attachment_image( $item->thumbnail_id, $image_size, false, "class=menu-image {$class}" );
        }
        $none = ''; // Sugar.
        switch ( $position ) {
            case 'hide':
            case 'before':
            case 'above':
                $item_args = array( $none, $title, $image );
                break;
            case 'after':
            default:
                $item_args = array( $image, $title, $none );
                break;
        }
        $title = vsprintf( '%s<span class="menu-image-title">%s</span>%s', $item_args );

        return $title;
    }

    public function menu_image_nav_menu_item_filter( $item_output, $item, $depth, $args ) {
        if ( $this->isProcessed( $item->ID ) ) {
            return $item_output;
        }
        $attributes = !empty( $item->attr_title ) ? ' title="' . esc_attr( $item->attr_title ) . '"' : '';
        $attributes .= !empty( $item->target ) ? ' target="' . esc_attr( $item->target ) . '"' : '';
        $attributes .= !empty( $item->xfn ) ? ' rel="' . esc_attr( $item->xfn ) . '"' : '';
        $attributes .= !empty( $item->url ) ? ' href="' . esc_attr( $item->url ) . '"' : '';
        $attributes_array = shortcode_parse_atts($attributes);

        $image_size = $item->image_size ? $item->image_size : apply_filters( 'menu_image_default_size', 'menu-36x36' );
        $position   = $item->title_position ? $item->title_position : apply_filters( 'menu_image_default_title_position', 'after' );
        $class      = "menu-image-title-{$position}";
        $this->setUsedAttachments( $image_size, $item->thumbnail_id );
        $image = '';
        if ( $item->thumbnail_hover_id ) {
            $this->setUsedAttachments( $image_size, $item->thumbnail_hover_id );
            $hover_image_src = wp_get_attachment_image_src( $item->thumbnail_hover_id, $image_size );
            $margin_size     = $hover_image_src[ 1 ];
            $image           = "<span class='menu-image-hover-wrapper'>";
            $image .= wp_get_attachment_image( $item->thumbnail_id, $image_size, false, "class=menu-image {$class}" );
            $image .= wp_get_attachment_image(
                $item->thumbnail_hover_id, $image_size, false, array(
                    'class' => "hovered-image {$class}",
                    'style' => "margin-left: -{$margin_size}px;",
                )
            );
            $image .= '</span>';;
            $class .= ' menu-image-hovered';
        } elseif ( $item->thumbnail_id ) {
            $image = wp_get_attachment_image( $item->thumbnail_id, $image_size, false, "class=menu-image {$class}" );
            $class .= ' menu-image-not-hovered';
        }
        $attributes_array['class'] = $class;

        $attributes_array = apply_filters( 'menu_image_link_attributes', $attributes_array, $item, $depth, $args );
        $attributes = '';
        foreach ( $attributes_array as $attr_name => $attr_value ) {
            $attributes .= "{$attr_name}=\"$attr_value\" ";
        }
        $attributes = trim($attributes);

        $item_output = "{$args->before}<a {$attributes}>";
        $link        = $args->link_before . apply_filters( 'the_title', $item->title, $item->ID ) . $args->link_after;
        $none        = ''; 
        switch ( $position ) {
            case 'hide':
            case 'before':
            case 'above':
                $item_args = array( $none, $link, $image );
                break;
            case 'after':
            default:
                $item_args = array( $image, $link, $none );
                break;
        }
        $item_output .= vsprintf( '%s<span class="menu-image-title">%s</span>%s', $item_args );
        $item_output .= "</a>{$args->after}";

        return $item_output;
    }

    public function menu_image_add_inline_style_action() {
        wp_register_style( 'menu-image', SF()->plugin_url() . '/assets/css/menu-image.css', array(), '1.1', 'all' );
        wp_enqueue_style( 'menu-image' );
    }

    public function menu_image_admin_head_nav_menus_action() {
        wp_enqueue_script( 'menu-image-admin', SF()->plugin_url() . '/assets/js/menu-image.js', array( 'jquery' ) );
        wp_localize_script(
            'menu-image-admin', 'menuImage', array(
                  'l10n'               => array(
                    'uploaderTitle'      => __( 'Chose menu image', 'menu-image' ),
                    'uploaderButtonText' => __( 'Select', 'menu-image' ),
                ),
                'settings' => array(
                    'nonce' => wp_create_nonce( 'update-menu-item' ),
                ),
            )
        );
        wp_enqueue_media();
        wp_enqueue_style( 'editor-buttons' );
    }

    public function menu_image_delete_menu_item_image_action() {

        $menu_item_id = (int) $_REQUEST[ 'menu-item' ];

        check_admin_referer( 'delete-menu_item_image_' . $menu_item_id );

        if ( is_nav_menu_item( $menu_item_id ) && has_post_thumbnail( $menu_item_id ) ) {
            delete_post_thumbnail( $menu_item_id );
            delete_post_meta( $menu_item_id, '_thumbnail_hover_id' );
            delete_post_meta( $menu_item_id, '_menu_item_image_size' );
            delete_post_meta( $menu_item_id, '_menu_item_image_title_position' );
        }
    }

    public function wp_post_thumbnail_only_html( $item_id ) {
        $default_size = apply_filters( 'menu_image_default_size', 'menu-36x36' );
        $markup       = '<p class="description description-thin" ><label>%s<br /><a title="%s" href="#" class="set-post-thumbnail button%s" data-item-id="%s" style="height: auto;">%s</a>%s</label></p>';

        $thumbnail_id = get_post_thumbnail_id( $item_id );
        $content      = sprintf(
            $markup,
            esc_html__( 'Menu image', 'menu-image' ),
            $thumbnail_id ? esc_attr__( 'Change menu item image', 'menu-image' ) : esc_attr__( 'Set menu item image', 'menu-image' ),
            '',
            $item_id,
            $thumbnail_id ? wp_get_attachment_image( $thumbnail_id, $default_size ) : esc_html__( 'Set image', 'menu-image' ),
            $thumbnail_id ? '<a href="#" class="remove-post-thumbnail">' . __( 'Remove', 'menu-image' ) . '</a>' : ''
        );
        return $content;
    }

    public function wp_post_thumbnail_html( $item_id ) {
        $default_size = apply_filters( 'menu_image_default_size', 'menu-36x36' );
        $content      = $this->wp_post_thumbnail_only_html( $item_id );

        $image_size = get_post_meta( $item_id, '_menu_item_image_size', true );
        if ( !$image_size ) {
            $image_size = $default_size;
        }
        $title_position = get_post_meta( $item_id, '_menu_item_image_title_position', true );
        if ( !$title_position ) {
            $title_position = apply_filters( 'menu_image_default_title_position', 'after' );
        }

    

        $content = "<div class='menu-item-images' style='min-height:70px'>$content</div>";
        return apply_filters( 'admin_menu_item_thumbnail_html', $content, $item_id );
    }

    public function wp_ajax_set_menu_item_thumbnail() {
        $json = !empty( $_REQUEST[ 'json' ] );

        $post_ID = intval( $_POST[ 'post_id' ] );
        if ( !current_user_can( 'edit_post', $post_ID ) ) {
            wp_die( - 1 );
        }

        $thumbnail_id = intval( $_POST[ 'thumbnail_id' ] );
        $is_hovered   = (bool) $_POST[ 'is_hover' ];

        check_ajax_referer( "update-menu-item" );

        if ( $thumbnail_id == '-1' ) {
            if ( $is_hovered ) {
                $success = delete_post_meta( $post_ID, '_thumbnail_hover_id' );
            } else {
                $success = delete_post_thumbnail( $post_ID );
            }
        } else {
            if ( $is_hovered ) {
                $success = update_post_meta( $post_ID, '_thumbnail_hover_id', $thumbnail_id );
            } else {
                $success = set_post_thumbnail( $post_ID, $thumbnail_id );
            }
        }

        if ( $success ) {
            $return = $this->wp_post_thumbnail_only_html( $post_ID );
            $json ? wp_send_json_success( $return ) : wp_die( $return );
        }

        wp_die( 0 );
    }

    public function menu_item_custom_fields( $item_id, $item, $depth, $args ){

        ?>
        <div class="field-image hide-if-no-js wp-media-buttons">
            <?php echo $this->wp_post_thumbnail_html( $item_id ) ?>
        </div>
    <?php
    }


    public function jetpack_photon_override_image_downsize_filter( $prevent, $data ) {
        return $this->isAttachmentUsed( $data[ 'attachment_id' ], $data[ 'size' ] );
    }


    public function setUsedAttachments( $size, $id ) {
        $this->used_attachments[ $size ][ ] = $id;
    }

    
    public function isAttachmentUsed( $id, $size = null ) {
        if ( ! is_null( $size ) ) {
            return is_string( $size ) && isset( $this->used_attachments[ $size ] ) && in_array( $id, $this->used_attachments[ $size ] );
        } else {
            foreach ( $this->used_attachments as $used_attachment ) {
                if ( in_array( $id, $used_attachment ) ) {
                    return true;
                }
            }
            return false;
        }
    }

    
    public function wp_get_attachment_image_attributes( $attr, $attachment, $size ) {
        if ( $this->isAttachmentUsed( $attachment->ID, $size ) ) {
            unset( $attr['sizes'], $attr['srcset'] );
        }

        return $attr;
    }


    protected function setProcessed( $id ) {
        $this->processed[] = $id;
    }


    protected function isProcessed( $id ) {
        return in_array( $id, $this->processed );
    }
}

$menu_image = new SNAP_Menu_Image();

require_once(ABSPATH . 'wp-admin/includes/nav-menu.php');

class Menu_Image_Walker_Nav_Menu_Edit extends Walker_Nav_Menu_Edit {

    public function start_el( &$output, $item, $depth = 0, $args = array(), $id = 0 ) {
        global $_wp_nav_menu_max_depth;
        $_wp_nav_menu_max_depth = $depth > $_wp_nav_menu_max_depth ? $depth : $_wp_nav_menu_max_depth;

        ob_start();
        $item_id = esc_attr( $item->ID );
        $removed_args = array(
            'action',
            'customlink-tab',
            'edit-menu-item',
            'menu-item',
            'page-tab',
            '_wpnonce',
        );

        $original_title = false;
        if ( 'taxonomy' == $item->type ) {
            $original_title = get_term_field( 'name', $item->object_id, $item->object, 'raw' );
            if ( is_wp_error( $original_title ) )
                $original_title = false;
        } elseif ( 'post_type' == $item->type ) {
            $original_object = get_post( $item->object_id );
            $original_title = get_the_title( $original_object->ID );
        } elseif ( 'post_type_archive' == $item->type ) {
            $original_object = get_post_type_object( $item->object );
            if ( $original_object ) {
                $original_title = $original_object->labels->archives;
            }
        }

        $classes = array(
            'menu-item menu-item-depth-' . $depth,
            'menu-item-' . esc_attr( $item->object ),
            'menu-item-edit-' . ( ( isset( $_GET['edit-menu-item'] ) && $item_id == $_GET['edit-menu-item'] ) ? 'active' : 'inactive'),
        );

        $title = $item->title;

        if ( ! empty( $item->_invalid ) ) {
            $classes[] = 'menu-item-invalid';
            $title = sprintf( __( '%s (Invalid)' ), $item->title );
        } elseif ( isset( $item->post_status ) && 'draft' == $item->post_status ) {
            $classes[] = 'pending';
            $title = sprintf( __('%s (Pending)'), $item->title );
        }

        $title = ( ! isset( $item->label ) || '' == $item->label ) ? $title : $item->label;

        $submenu_text = '';
        if ( 0 == $depth )
            $submenu_text = 'style="display: none;"';

        ?>
        <li id="menu-item-<?php echo $item_id; ?>" class="<?php echo implode(' ', $classes ); ?>">
            <div class="menu-item-bar">
                <div class="menu-item-handle">
                    <span class="item-title"><span class="menu-item-title"><?php echo esc_html( $title ); ?></span> <span class="is-submenu" <?php echo $submenu_text; ?>><?php _e( 'sub item' ); ?></span></span>
                    <span class="item-controls">
                        <span class="item-type"><?php echo esc_html( $item->type_label ); ?></span>
                        <span class="item-order hide-if-js">
                            <a href="<?php
                                echo wp_nonce_url(
                                    add_query_arg(
                                        array(
                                            'action' => 'move-up-menu-item',
                                            'menu-item' => $item_id,
                                        ),
                                        remove_query_arg($removed_args, admin_url( 'nav-menus.php' ) )
                                    ),
                                    'move-menu_item'
                                );
                            ?>" class="item-move-up" aria-label="<?php esc_attr_e( 'Move up' ) ?>">&#8593;</a>
                            |
                            <a href="<?php
                                echo wp_nonce_url(
                                    add_query_arg(
                                        array(
                                            'action' => 'move-down-menu-item',
                                            'menu-item' => $item_id,
                                        ),
                                        remove_query_arg($removed_args, admin_url( 'nav-menus.php' ) )
                                    ),
                                    'move-menu_item'
                                );
                            ?>" class="item-move-down" aria-label="<?php esc_attr_e( 'Move down' ) ?>">&#8595;</a>
                        </span>
                        <a class="item-edit" id="edit-<?php echo $item_id; ?>" href="<?php
                            echo ( isset( $_GET['edit-menu-item'] ) && $item_id == $_GET['edit-menu-item'] ) ? admin_url( 'nav-menus.php' ) : add_query_arg( 'edit-menu-item', $item_id, remove_query_arg( $removed_args, admin_url( 'nav-menus.php#menu-item-settings-' . $item_id ) ) );
                        ?>" aria-label="<?php esc_attr_e( 'Edit menu item' ); ?>"><span class="screen-reader-text"><?php _e( 'Edit' ); ?></span></a>
                    </span>
                </div>
            </div>

            <div class="menu-item-settings wp-clearfix" id="menu-item-settings-<?php echo $item_id; ?>">
                <?php if ( 'custom' == $item->type ) : ?>
                    <p class="field-url description description-wide">
                        <label for="edit-menu-item-url-<?php echo $item_id; ?>">
                            <?php _e( 'URL' ); ?><br />
                            <input type="text" id="edit-menu-item-url-<?php echo $item_id; ?>" class="widefat code edit-menu-item-url" name="menu-item-url[<?php echo $item_id; ?>]" value="<?php echo esc_attr( $item->url ); ?>" />
                        </label>
                    </p>
                <?php endif; ?>
            
            
                <p class="field-xfn description description-thin">
                    <label for="edit-menu-item-xfn-<?php echo $item_id; ?>">
                        <?php _e( 'Link Relationship (XFN)' ); ?><br />
                        <input type="text" id="edit-menu-item-xfn-<?php echo $item_id; ?>" class="widefat code edit-menu-item-xfn" name="menu-item-xfn[<?php echo $item_id; ?>]" value="<?php echo esc_attr( $item->xfn ); ?>" />
                    </label>
                </p>

                <?php
                do_action( 'wp_nav_menu_item_custom_fields', $item_id, $item, $depth, $args );
                ?>

                
                <fieldset class="field-move hide-if-no-js description description-wide">
                    <span class="field-move-visual-label" aria-hidden="true"><?php _e( 'Move' ); ?></span>
                    <button type="button" class="button-link menus-move menus-move-up" data-dir="up"><?php _e( 'Up one' ); ?></button>
                    <button type="button" class="button-link menus-move menus-move-down" data-dir="down"><?php _e( 'Down one' ); ?></button>
                    <button type="button" class="button-link menus-move menus-move-left" data-dir="left"></button>
                    <button type="button" class="button-link menus-move menus-move-right" data-dir="right"></button>
                    <button type="button" class="button-link menus-move menus-move-top" data-dir="top"><?php _e( 'To the top' ); ?></button>
                </fieldset>

                <div class="menu-item-actions description-wide submitbox">
                    <?php if ( 'custom' != $item->type && $original_title !== false ) : ?>
                        <p class="link-to-original">
                            <?php printf( __('Original: %s'), '<a href="' . esc_attr( $item->url ) . '">' . esc_html( $original_title ) . '</a>' ); ?>
                        </p>
                    <?php endif; ?>
                    <a class="item-delete submitdelete deletion" id="delete-<?php echo $item_id; ?>" href="<?php
                    echo wp_nonce_url(
                        add_query_arg(
                            array(
                                'action' => 'delete-menu-item',
                                'menu-item' => $item_id,
                            ),
                            admin_url( 'nav-menus.php' )
                        ),
                        'delete-menu_item_' . $item_id
                    ); ?>"><?php _e( 'Remove' ); ?></a> <span class="meta-sep hide-if-no-js"> | </span> <a class="item-cancel submitcancel hide-if-no-js" id="cancel-<?php echo $item_id; ?>" href="<?php echo esc_url( add_query_arg( array( 'edit-menu-item' => $item_id, 'cancel' => time() ), admin_url( 'nav-menus.php' ) ) );
                        ?>#menu-item-settings-<?php echo $item_id; ?>"><?php _e('Cancel'); ?></a>
                </div>

                <input class="menu-item-data-db-id" type="hidden" name="menu-item-db-id[<?php echo $item_id; ?>]" value="<?php echo $item_id; ?>" />
                <input class="menu-item-data-object-id" type="hidden" name="menu-item-object-id[<?php echo $item_id; ?>]" value="<?php echo esc_attr( $item->object_id ); ?>" />
                <input class="menu-item-data-object" type="hidden" name="menu-item-object[<?php echo $item_id; ?>]" value="<?php echo esc_attr( $item->object ); ?>" />
                <input class="menu-item-data-parent-id" type="hidden" name="menu-item-parent-id[<?php echo $item_id; ?>]" value="<?php echo esc_attr( $item->menu_item_parent ); ?>" />
                <input class="menu-item-data-position" type="hidden" name="menu-item-position[<?php echo $item_id; ?>]" value="<?php echo esc_attr( $item->menu_order ); ?>" />
                <input class="menu-item-data-type" type="hidden" name="menu-item-type[<?php echo $item_id; ?>]" value="<?php echo esc_attr( $item->type ); ?>" />
            </div>
            <ul class="menu-item-transport"></ul>
        <?php
        $output .= ob_get_clean();
                }
            }

【问题讨论】:

  • 你能提供所有的代码吗?你放在这里的只是它的一部分
  • 代码很多,但我还是更新了问题...谢谢
  • 能分享一下生成的HTML的相关部分吗?另外,您确定这是 PHP 问题而不是 JavaScript 问题吗?到目前为止,你做了什么来调试这个?你能确认一下wp_post_thumbnail_html被调用了多少次,每次调用的参数值($item_id)是多少?
  • @WOUNDEDStevenJones 所有代码都已匹配,什么都不做,并且在代码中调用按钮 &lt;? php echo $this-&gt;wp_post_thumbnail_html($content);?&gt; 在 js 我只调用功能,除非是因为没有 Ajax 的 html
  • 从外观上看,这个函数正在输出类似&lt;p&gt;image&lt;br&gt;&lt;a&gt;&lt;img /&gt;&lt;/a&gt;&lt;/p&gt;的东西。但是您的示例还包括上面的单词Menu,这似乎不在您的PHP代码中。那么&lt;? php echo $this-&gt;wp_post_thumbnail_html($content);?&gt; 是否有可能从您的模板中被调用两次?请包含调用此函数的相关模板代码。

标签: php html wordpress


【解决方案1】:

虽然答案很基本,但我会保留这个问题......

我已经实例化了 2 次类!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-19
    • 1970-01-01
    • 1970-01-01
    • 2017-08-24
    • 2019-12-26
    • 2018-10-24
    • 1970-01-01
    相关资源
    最近更新 更多