【问题标题】:Display only child of selected category - Listify/Job Manager仅显示所选类别的子项 - Listify/Job Manager
【发布时间】:2015-10-18 16:32:07
【问题描述】:

我正在尝试在多选下拉列表中显示 $selected_category / s 的子级,并尝试了以下操作;

<?php job_manager_dropdown_categories( array( 'taxonomy' => 'job_listing_category', 'hierarchical' => 1, 'name' => 'search_categories',  'selected' => $selected_category, 'child_of' => $selected_category, 'orderby' => 'id','hide_empty' => true) ); ?>

您可以通过选择主页上的父类别到达下拉列表,然后移至显示结果的此页面。我希望此页面上的下拉菜单仅显示所选类别的子类别(因为它当前显示所有类别的所有父项和子项)以缩小结果范围。但是,尽管我使用的代码在下拉列表中完美运行,但它会删除父类别和父类别的搜索结果,因此会显示所有结果,直到您选择子类别,这并不理想。

如何在仅显示所选父级的子类别时保留父类别和结果。

周围的代码没有

    <?php elseif ( $show_categories && ! is_tax( 'job_listing_category' ) && get_terms( 'job_listing_category' ) ) : ?>
        <div class="search_categories">
            <label for="search_categories"><?php _e( 'Category', 'wp-job-manager' ); ?></label>
            <?php if ( $show_category_multiselect ) : ?>
                <?php job_manager_dropdown_categories( array( 'taxonomy' => 'job_listing_category', 'hierarchical' => 1, 'name' => 'search_categories',  'selected' => $selected_category,   'child_of' => $selected_category, 'orderby' => 'id','hide_empty' => true) ); ?>
            <?php else : ?>
                <?php job_manager_dropdown_categories( array( 'taxonomy' => 'job_listing_category', 'hierarchical' => 1, 'show_option_all' => __( 'Any category', 'wp-job-manager' ),'orderby' => 'id', 'name' => 'search_categories',  'selected' => $selected_category, 'multiple' => false ) ); ?>
            <?php endif; ?>

https://wordpress.org/plugins/wp-job-manager/

【问题讨论】:

  • 这个问题最好问问插件/主题作者,没有相关代码这个问题是不可能解决的。

标签: php wordpress


【解决方案1】:

这是很久以前的事了,但我需要这个,而且似乎没有关于它的真正好的文档。

在第 265 行之后添加到 wp-job-manager-functions.php(在函数 get_job_listing_categories() 之后)

function get_job_listing_categories_child($id_child) {
    if ( ! get_option( 'job_manager_enable_categories' ) ) {
        return array();
    }

    return get_terms( "job_listing_category", array(
        'orderby'       => 'id',
        'order'         => 'ASC',
        'hide_empty'    => true,
        'child_of'        => $id_child,
    ) );
}

如果你想访问该类别,你可以使用这样的东西:

<?php foreach ( get_job_listing_categories_child(86) as $cat ) : ?>
<option value="<?php echo esc_attr( $cat->term_id ); ?>">
<?php echo esc_html( $cat->name ); ?>
</option>
<?php endforeach; ?>

但是 86 在哪里你必须把你的孩子的头的 id 要获取孩子头部的 ID,请转到您的管理面板,单击您想要的编辑。 然后你会在 url 中看到 tag_ID=,后面的数字就是你要使用的 id

【讨论】:

    猜你喜欢
    • 2015-07-02
    • 1970-01-01
    • 1970-01-01
    • 2015-08-13
    • 1970-01-01
    • 2017-10-11
    • 1970-01-01
    • 2012-06-25
    • 1970-01-01
    相关资源
    最近更新 更多