Foros del Web » Creando para Internet » Sistemas de gestión de contenidos » WordPress »

Mostrar solo las Categorias y no las subcategorias

Estas en el tema de Mostrar solo las Categorias y no las subcategorias en el foro de WordPress en Foros del Web. Buenas. Estoy utilizando Woocomerce con el tema Mystile, y en la pagina principal me muestra las categorías y subcategorias existentes. Necesito que solo muestre las ...
  #1 (permalink)  
Antiguo 03/07/2013, 05:33
xoi
 
Fecha de Ingreso: noviembre-2006
Mensajes: 27
Antigüedad: 17 años, 5 meses
Puntos: 0
Mostrar solo las Categorias y no las subcategorias

Buenas.
Estoy utilizando Woocomerce con el tema Mystile, y en la pagina principal me muestra las categorías y subcategorias existentes.

Necesito que solo muestre las categorías y desde el panel de control no hay opción por lo que tocará hacerlo a través de código.

Creo que la funcion que las muestra es esta (theme-commerce.PHP):

function mystile_product_categories() {
global $woo_options;
if (class_exists('woocommerce') && $woo_options[ 'woo_homepage_product_categories' ] == "true" ) {
echo '<h1>'.__('Marcas', 'woothemes').'</h1>';
echo do_shortcode('[product_categories number=""]');
woocommerce_reset_loop(); // can be removed post WooCommerce 1.6.4
} // End query to see if products should be displayed




y por otra parte en category-template.php tenemos:

Category-template.php
------------------------------------------------
function wp_list_categories( $args = '' ) {
$defaults = array(
'show_option_all' => '', 'show_option_none' => __('No categories'),
'orderby' => 'name', 'order' => 'ASC',
'style' => 'list',
'show_count' => 0, 'hide_empty' => 1,
'use_desc_for_title' => 1, 'child_of' => 0,
'feed' => '', 'feed_type' => '',
'feed_image' => '', 'exclude' => '',
'exclude_tree' => '', 'current_category' => 0,
'hierarchical' => true, 'title_li' => __( 'Categories' ),
'echo' => 1, 'depth' => 0,
'taxonomy' => 'category'
);

$r = wp_parse_args( $args, $defaults );

if ( !isset( $r['pad_counts'] ) && $r['show_count'] && $r['hierarchical'] )
$r['pad_counts'] = true;

if ( true == $r['hierarchical'] ) {
$r['exclude_tree'] = $r['exclude'];
$r['exclude'] = '';
}

if ( !isset( $r['class'] ) )
$r['class'] = ( 'category' == $r['taxonomy'] ) ? 'categories' : $r['taxonomy'];

extract( $r );

if ( !taxonomy_exists($taxonomy) )
return false;

$categories = get_categories( $r );

$output = '';
if ( $title_li && 'list' == $style )
$output = '<li class="' . esc_attr( $class ) . '">' . $title_li . '<ul>';

if ( empty( $categories ) ) {
if ( ! empty( $show_option_none ) ) {
if ( 'list' == $style )
$output .= '<li>' . $show_option_none . '</li>';
else
$output .= $show_option_none;
}
} else {
if ( ! empty( $show_option_all ) ) {
$posts_page = ( 'page' == get_option( 'show_on_front' ) && get_option( 'page_for_posts' ) ) ? get_permalink( get_option( 'page_for_posts' ) ) : home_url( '/' );
$posts_page = esc_url( $posts_page );
if ( 'list' == $style )
$output .= "<li><a href='$posts_page'>$show_option_all</a></li>";
else
$output .= "<a href='$posts_page'>$show_option_all</a>";
}

if ( empty( $r['current_category'] ) && ( is_category() || is_tax() || is_tag() ) ) {
$current_term_object = get_queried_object();
if ( $r['taxonomy'] == $current_term_object->taxonomy )
$r['current_category'] = get_queried_object_id();
}

if ( $hierarchical )
$depth = $r['depth'];
else
$depth = -1; // Flat.

$output .= walk_category_tree( $categories, $depth, $r );
}

if ( $title_li && 'list' == $style )
$output .= '</ul></li>';

$output = apply_filters( 'wp_list_categories', $output, $args );

if ( $echo )
echo $output;
else
return $output;
}

Según he leído había que modificar "Hierarchical"=1 y "Depth"=1 para que no muestre los hijos pero no me ha funcionado. He tocado un montón de archivos y no hay manera.

Hay alguna manera de excluir las subcategorias?

Puedo subir cualquier archivo que sea necesario.

Gracias!

Etiquetas: categorias, php, post, subcategorias, tema, theme
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:04.