清理重复的WordPress代码

时间:2016-02-02 作者:Arg Geo

我想在同一个页面模板中多次使用以下代码,但是当涉及到代码行时,模板会变得太大,因此会变大。每次使用它时,我只更改一个参数,99%保持不变。我更改的参数为\'terms\'=>\'pop\'. 我知道我可以用一段相对较小的代码显示所有帖子和所有分类术语(每个分类下的分类术语帖子),但这不会像我想要的那样工作,因为我想以自定义方式排序分类,而不是按标题或术语(ASC/DSC)。我想的是可能会将代码添加到一个函数中,每次调用该函数时,我只传递发生变化的参数。

代码:

$query = new WP_Query( array(
                        \'post_type\'      => \'stations\',
                        \'post_status\' => \'publish\',
                        \'posts_per_page\' => -1,
                        \'orderby\' => \'title\',
                        \'order\' => \'ASC\',
                        \'tax_query\' => array(
                                         array(
                                            \'taxonomy\' => \'genres\',
                                            \'field\' => \'name\',
                                            \'terms\' => \'pop\' // THIS IS WHAT CHANGES
                                             )
                                       )
                     ) );

2 个回复
最合适的回答,由SO网友:david_nash 整理而成

要扩展Global的答案,请执行以下操作:

将此粘贴到主题的功能中。php:

function get_stations_query( $terms ) {
    //create new query object
    $query = new WP_Query( array(
                    \'post_type\'      => \'stations\',
                    \'post_status\' => \'publish\',
                    \'posts_per_page\' => -1,
                    \'orderby\' => \'title\',
                    \'order\' => \'ASC\',
                    \'tax_query\' => array(
                                     array(
                                        \'taxonomy\' => \'genres\',
                                        \'field\' => \'name\',
                                        \'terms\' => $terms
                                         )
                                     )
                 ) );
    return $query; //return the object
}
然后在模板文件中可以使用:

$query = get_stations_query(\'pop\');

SO网友:LukeWarm

创建一个新函数,将所有代码放入其中,并将“pop”替换为$流派。然后这样称呼它:

get_stations_query( $genre );
函数的返回应该是

return $query;

相关推荐

Admin sidebar customization

我的新客户wordpress站点在管理侧栏中没有插件、外观或任何其他默认项。谁能告诉我这些是怎么出现的吗。该站点正在主站点的子目录中运行。它有自己的wordpress安装。主题是前面的rttheme16。提前谢谢。