将文本字段中的每个新行转换为数组中的新值

时间:2016-10-17 作者:Ethan O\'Sullivan

在我的插件中,我创建了一个文本字段(ID:main_menu) 这允许用户按菜单slug列出管理菜单项(例如:index.php = 仪表板,plugins.php = 插件等):

用户在新行中输入每个菜单项非常重要,这样可以将其转换为数组。现在,当用户在每一行输入他们的输入时,当我echo 这个get_option() 对于该字段。

如何转换输入到多个值的数组循环中的每个新行输入?

1 个回复
最合适的回答,由SO网友:Ethan O\'Sullivan 整理而成

为此,您需要使用explode() 用于拆分每条新行的函数(\\n) 转换为另一个数组值。此外,更换不可见的也很重要Carriage Return Mac OS也将其用作新行字符:

# Get the plugin options
$settings = get_option( \'myplugin_menu\' );
if ( isset( $settings[\'main_menu\'] ) ) {
    # Convert each new line in the textarea as an array item
    $menu_slug = explode( "\\n", str_replace( "\\r", "", $settings[\'main_menu\'] ) );
    foreach ( $menu_slug as $key => $value ) {
        # Remove each menu item
        remove_menu_page( $value );
    }
}

相关推荐

Foreach循环内的if/ellif in_array仅显示一个POST的问题

如果某个类别的帖子对应一个类别,我会尝试为每个帖子指定一个特定的背景色。我的函数可以工作,但仅限于在结果中显示一篇文章。如果我删除此功能,将显示所有帖子。更多信息:在我的页面上,我有按类别筛选帖子的按钮。如果单击一次,我将显示该类别的所有帖子。但每个帖子都包含几个类别。我选择了一些类别来为每个帖子设置背景色,但这些类别与过滤器按钮不同。Wordpress显示此错误;您的站点出现严重错误,请了解有关调试WordPress的详细信息"E;在显示第一个帖子之后。以下是我的全部代码:<?php&#x