对于wordpress类别图像未定义的数组键

For wordpress category image undefined array key

提问人:wws34 提问时间:11/15/2023 最后编辑:wws34 更新时间:11/21/2023 访问量:90

问:

我正在尝试将图像添加到我的 WordPress 主题的类别中。我将图像添加到类别中。相关类别的图像将显示在管理面板和站点的相关位置。但是我从文件中的代码块中收到此错误。function.php

Warning: Undefined array key "category_custom_image_url" in C:\xampp\htdocs\wordpress\wp-content\themes\customjob\functions.php on line 457

我无法识别导致错误的数组元素。'category_custom_image_url'

add_action( 'edit_term', 'edit_term_callback' );
    function edit_term_callback($term_id) {
        $image = '';
        $image = get_term_meta( $term_id, 'term_image' );
        if ( $image )
            update_term_meta( $term_id, 'term_image', esc_url( $_POST['category_custom_image_url']) )
    else
        add_term_meta( $term_id, 'term_image', esc_url( $_POST['category_custom_image_url']) );
}

你能帮我识别这个晦涩难懂的序列吗?

编辑:奇怪的是,我在类别编辑页面上没有收到错误。当我按下菜单编辑页面上的保存菜单按钮时,我收到此错误。我不明白为什么这个页面会给出错误,但错误出在与将图像添加到类别相关的代码中。它还会从列表中删除现有菜单。

print_r($_POST);代码后的结果

Array ( 
    [nav-menu-data] => 
    [closedpostboxesnonce] => 958eb87f93 
    [meta-box-order-nonce] => f9354247e5 
    [update-nav-menu-nonce] => f2b7a942cd 
    [_wp_http_referer] => /wordpress/wp-admin/nav-menus.php?action=edit&menu=107 
    [action] => update 
    [menu] => 107 
    [menu-name] => Header Menu 
    [menu-locations] => Array ( [menu-1] => 107 ) 
    [save_menu] => Save menu 
)

额外说明:让我指出,这些特殊类别是我为特殊帖子类型创建的类别。创建类别、将内容连接到这些类别和添加图像没有问题。我只是在另一个编辑页面上收到未定义的数组错误。

数组 wordpress

评论

0赞 Nico Haase 11/15/2023
这与 undef 有什么关系?您尝试过什么来解决问题?为什么不检查一下包含的内容?$_POST
0赞 wws34 11/15/2023
$_POST['category_custom_image_url'] = $image;$image = wp_get_attachment_image(数组('category_custom_image_url'));使用 获得不同的结果。我应用了这两种方法和一些我以前没有注意到的方法,但我无法识别数组。
0赞 Nico Haase 11/15/2023
正如您在转储后所看到的,您要访问的数组键未设置$_POST

答:

0赞 womd 11/15/2023 #1

好的,那么这个呢:

add_action( 'edit_term', 'edit_term_callback' );

function edit_term_callback($term_id) {
$image = get_term_meta($term_id, 'term_image', true);

if(isset($_POST['category_custom_image_url']) ){

    if ($image) {
        update_term_meta($term_id, 'term_image', esc_url($_POST['category_custom_image_url']));
    } else {
        add_term_meta($term_id, 'term_image', esc_url($_POST['category_custom_image_url']));
    }
}
}

你放在哪里:

$_POST[] = 'category_custom_image_url';

?这不是真正的解决方案。

评论

0赞 wws34 11/17/2023
首先,我要感谢你和尼科。我以这种方式解决了这个问题。 您的解决方案也有效。但是当我按下更新按钮而不采取任何行动时,当前图像将被删除。图像删除问题与此有关吗?$_POST[] = 'category_custom_image_url'; return $_POST;
1赞 womd 11/17/2023
我想知道这是否像预期的那样工作;)
0赞 Nico Haase 11/17/2023
请记住,所有澄清都应添加到您的问题中,而不是任何评论部分
0赞 wws34 11/24/2023
@womd非常感谢您的关注。当我在没有任何干预的情况下直接按下更新按钮时,当前图像将被删除。或者当我按下删除按钮时,当前图像不会被删除。我修了一个,另一个坏了。我无法同时修复两个错误。
0赞 Nico Haase 11/24/2023
请通过编辑为您的问题添加所有澄清