默认WP图库-仅显示特定类别的图库

时间:2018-02-27 作者:Serge Inácio

我正在使用WordPress的默认图库并向其中添加类别。现在,我创建了一个带有循环的快捷码,以将库转到页面:

if(! function_exists(\'test_shortcode\')){
function lv_gallery_style_one_shortcode($atts, $content = null){
    extract(shortcode_atts( array(
        \'title\'=>\'\',
        ), $atts) );

        $port=array(\'post_type\' => \'gallery\', \'category_name\' => \'beach\', \'showposts\' => -1 );
        $loop=new WP_Query($port);
        while ( $loop->have_posts() ) : $loop->the_post(); 

        // HERE IS THE LOOP

        return $html;
}
add_shortcode(\'gallery_test\', \'test_shortcode\' );
我知道循环运行得很好,因为当我删除\'category_name\' => \'beach\' 它显示所有类别。

---------------EDIT:-----------------

我正在使用的库具有以下图标和选项:

enter image description here

我以为这是标准的WP画廊,我错了吗?

创建新库时,右侧有一个类别部分:

Category section

如果我不能使用它们,这是用来做什么的?我不明白。

---------------End EDIT:-------------

这只是一个示例代码。在完整版本中,类别名称将作为一个参数输入到快捷码中,这就是为什么我想这样做。

有什么办法可以让它发挥作用吗?

欢迎提出任何建议:)。

谢谢

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

我怀疑的是Gallery Categories 不是category 分类学它们可能是已注册的分类法,由添加gallery post类型的同一脚本注册。

要找到答案,请单击Gallery Categories (在提供的图像中),您将被重定向到如下URL:

http://example.com/wp-admin/edit-tags.php?taxonomy=my-taxonomy&post_type=gallery
检查taxonomy 论点如果不是category, 然后,您使用的是自定义分类法,需要添加tax_query 到您的WP_Query. 以下是操作方法:

您的参数只需更改如下:

$port=array(\'post_type\' => \'gallery\', \'category_name\' => \'beach\', \'showposts\' => -1 );
对此:

$port = array(
     \'post_type\' => \'gallery\', 
     \'showposts\' => -1,
     \'tax_query\' => array (
          array(
              \'taxonomy\' => \'my-taxonomy\',
              \'field\'    => \'slug\',
              \'terms\'    => \'beach\',
          )
     )
);
旁注:确保使用wp_reset_postdata(); 就在return $html;. 这将重置查询,并确保您的短代码不会影响页面中的任何其他查询。

全部完成。

SO网友:cjbj

从您的问题中,我了解到您正在使用标准WordPress安装。这意味着no post-type called \'gallery\'. 如果您(或插件)已经创建了一个,which is perfectly possible, 您可以忽略以下内容,因为在这种情况下,我不知道发生了什么,也不知道应该如何基于我不知道的代码进行构建。

从您想要制作一个快捷码的事实来看,我理解您想要在常规帖子或页面中插入图像,但不是列出图像,如default gallery-shortcode, 您想包括一个类别,WP必须插入带有特定标签的图像。

首先,让我们试着了解您的代码现在发生了什么。从wp\\U查询规范中可以看到default post_type is \'post\'. 所以如果你使用一个不存在的post_type 就像画廊一样,它将以“post”代替。然而,有no default category. 因此,如果指定category_name 如果不存在,则查询将返回零结果。

接下来,让我们看看WP是如何处理介质的。每个图像都存储为类型为“附件”的帖子。那篇文章有一个ID。默认的画廊短代码基本上是一个ID列表。不幸的是,当你上传图像时,不可能给它一个类别。因此,您无法按类别检索图像。然而,这可能是fixed easily:

function wpse295373_add_categories_to_attachments() {
    register_taxonomy_for_object_type (\'category\', \'attachment\');
    }
add_action (\'init\', \'wpse295373_add_categories_to_attachments\');
现在,您可以在上载图像时为其指定类别。因此,您还可以使用该类别在快捷代码中检索它们:

$port=array(\'post_type\' => \'attachment\', \'category_name\' => \'beach\', \'showposts\' => -1 );
这将返回海滩类别中的所有图像。

现在,从你的问题来看,还不完全清楚这是否是你想要的。也许你的意思是你有你想要检索的图片库。因此,在“海滩”类别中有一个名为“西班牙”的画廊,包含五幅图片,还有一个名为“法国”的画廊,等等。如果这是你想要的,你确实必须创造你自己的post_type.

结束

相关推荐

Loop increase number

$args = array( \'post_type\' => \'events\', \'order\' => \'ASC\', ); $wp_query = new WP_Query($args); ?> <script type=\"application/ld+json\"> { \"@context\":\"http://schema.org\", \"