【问题标题】:how to add multiple values to an array?如何将多个值添加到数组中?
【发布时间】:2014-09-11 14:16:27
【问题描述】:

上下文:

我正在尝试修复以下代码。此代码过滤我网站上的专辑(自定义 wordpress 帖子类型称为“freealbums”)。

代码按艺术家(自定义帖子类型称为“艺术家”)过滤免费专辑,代码运行良好,但我正在尝试制作一个过滤器,允许人们按以下方式对免费专辑帖子类型进行排序:

artist, upcomingartist and producer 

而不仅仅是艺术家帖子类型,但我似乎无法向此代码添加多种帖子类型并使其工作。

if(isset($_GET['a']) && intval($_GET['a']) != 0) {

  $atts = themex_get_query(themex_get_posts('freealbum',array('ID'),-1, array('artists','upcomingartist'=>$_GET['a'])), $limit, $paged); 

} else {

  $atts = array(
    'post_type'       =>'freealbum',
    'posts_per_page'  => $limit,
    'paged'           => $paged,
    'meta_key'        => '_thumbnail_id',
  ); 

} 

query_posts($atts);

这是我尝试添加另一种帖子类型的方法:

if(isset($_GET['a']) && intval($_GET['a']) !=0) {

  $atts=themex_get_query(themex_get_posts('freealbum',array('ID'),-1, array('artists','upcomingartist'=>$_GET['a'])), $limit, $paged); 

} else {
  $atts=array(
    'post_type'       =>'freealbum',
    'posts_per_page'  => $limit,
    'paged'           => $paged,
    'meta_key'        => '_thumbnail_id',
  ); 
} 

query_posts($atts);

如你所见,我改变的只是以下代码

array('artists'=>$_GET['a'])),

到这里

array('artists','upcomingartist'=>$_GET['a'])),

我认为这会起作用,但由于某些奇怪的原因,过滤器现在可以与 upcomingartist 帖子类型一起使用,但它不再与艺术家帖子类型一起使用。

不知道我做错了什么。请帮忙!

【问题讨论】:

  • 能不能展示一下这个函数的内容:themex_get_posts() ?

标签: php arrays wordpress


【解决方案1】:

尝试同时放置两个过滤器(目前您正在通过upcomingartist 过滤并通过奇怪的0 => 'artists' 作为第二个过滤器):

- array('artists','upcomingartist'=>$_GET['a'])),
+ array('artists'=>$_GET['a'],'upcomingartist'=>$_GET['u'])),

要过滤upcomingartist ,请使用以下命令:

array('upcomingartist'=>$_GET['u'])

希望对你有帮助。

【讨论】:

  • 我尝试了您的建议并且艺术家过滤器有效,但是即将到来的艺术家似乎仍然无法在这里工作是我查询if(isset($_GET['a']) && intval($_GET['a'])!=0) { $atts=themex_get_query(themex_get_posts('freealbum',array('ID'),-1, array('artists'=>$_GET['a'],'upcomingartist'=>$_GET['u'])), $limit, $paged); } else { $atts=array( 'post_type' =>'freealbum', 'posts_per_page' => $limit, 'paged' => $paged, 'meta_key' => '_thumbnail_id', ); } query_posts($atts);的完整代码
  • 很明显,您应该在您的 GET 请求中将 upcomingartist 提供为 u 以使其正常工作。没有woodoo魔法。如果您想检索即将到来的艺术家的专辑,过滤器应为:array('upcomingartist'=>$_GET['u']).
  • 我需要它来按艺术家、即将到来的艺术家或制作人过滤...我在侧边栏中有三个 html 框...。一个是艺术家的名字,一个是即将到来的艺术家的名字,一个是生产者将艺术家链接命名为“bamofficial.com/free-downloads/?a=271”,“?a=271”作为过滤器,即将到来的艺术家链接命名为“bamofficial.com/free-downloads/?u=271”,“?u=271”作为过滤器,生产者像这样的“bamofficial.com/free-downloads/?p=271”链接,其中“?p=271”是过滤器。所以这取决于他们选择哪个名字
  • 我需要三个单独的过滤器代码来完成这个吗?
  • “我需要三个单独的过滤器代码来完成这个”——是的,你会的。 _GET['p'] 将从请求地址中检索名为p 的查询参数(例如bamofficial.com/free-downloads/?p=271。)
【解决方案2】:

array_push — 将一个或多个元素压入数组末尾

$stack = array("orange", "banana");
array_push($stack, "apple", "raspberry");
print_r($stack);

在您的代码中:

array_push($someArray['upcomingartist'], $_GET);

LINK

【讨论】:

    猜你喜欢
    • 2019-05-30
    • 1970-01-01
    • 2019-04-02
    • 2013-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多