X

Cómo comprobar si una página es infantil (Avanzado con ID o SLUG)

Snippets by IsItWP

¿Estás buscando una manera de averiguar si una página de tu sitio WordPress es una página hija o no? Aunque probablemente exista un plugin para ello, hemos creado un fragmento de código rápido que puedes utilizar para comprobar si una página es una página hija en WordPress.

Instrucciones:

Todo lo que tienes que hacer es añadir este código al archivo functions.php de tu tema o en un plugin específico del sitio:


/*
* Checks if the page is the parent or a child of the page matching the $pid param
* $pid can be the page slug or the page ID #
*
* This function is best used to display menus when the parent/top level menu item needs
* a rollover state or special treatment.
*
* @param $pid (string or int)
* returns true if current page ID matches , else return false
*/


function is_child( $pid ) {  //  = The ID of the page we're looking for pages underneath
        global $post;        // load details about this page

    // if $pid is an ID
        if (is_int($pid)) {

                if ( is_page($pid) )
                        return true;
            // get the page's children if the ID of a child matches the  return true
                $anc = get_post_ancestors( $post->ID );
                foreach ( $anc as $ancestor ) {
                        if( is_page() && $ancestor == $pid ) {
                                return true;
                        }
                }
        }
    // if  is a page slug
        elseif (is_string($pid)) {
                // Get page by 'SLUG'
                $page = get_page_by_path( $pid );
                if ($post->ID == $page->ID) {
                        return true;
                }

                $anc = get_post_ancestors( $post->ID );
                foreach ( $anc as $ancestor ) {
                        if( is_page() &&  == $page->ID ) {
                                return true;
                        }
                }
        }

        return false;  // we arn't at the page, and the page is not an ancestor
}

/*
Used in a template:

<img src="home<?php if (is_child(0)){?>-ro<?php } ?>.jpg">
or
<img src="home<?php if (is_child('home')){?>-ro<?php } ?>.jpg">

if true equals
<img src="home-ro.jpg">


*/

Nota: Si es la primera vez que añades fragmentos de código en WordPress, consulta nuestra guía sobre cómo añadir correctamente fragmentos de código en WordPress, para no romper accidentalmente tu sitio.

Si te ha gustado este fragmento de código, por favor, considere revisar nuestros otros artículos en el sitio como: 7 mejores plugins de encuestas de WordPress para aumentar la participación en el sitio y cómo configurar el seguimiento de descargas en WordPress con Google Analytics.

Comentarios   Deja una respuesta

  1. Hi, there’s a syntax error on #39

Añadir un comentario

Nos alegra que haya decidido dejar un comentario. Tenga en cuenta que todos los comentarios se moderan de acuerdo con nuestra política de privacidad , y que todos los enlaces son nofollow. NO utilice palabras clave en el campo del nombre. Tengamos una conversación personal y significativa.

WordPress Launch Checklist

La lista definitiva para lanzar WordPress

Hemos recopilado todos los elementos esenciales de la lista de comprobación para el lanzamiento de su próximo sitio web de WordPress en un práctico ebook.
Sí, envíeme el ¡gratuito!