¿Cómo obtener la identificación de la página principal y el título de la página actual en wordpress?

2 minutos de lectura

Aquí está mi código, que no funciona.

global $post;
echo get_the_title( wp_get_post_parent_id( $post->post->ID ) );

Pero esto no está funcionando.

gracias de antemano.

  • ¿Qué versión de WordPress? ¿Dónde ejecutas este código?

    – Leszek P.

    6 de abril de 2017 a las 8:02

  • Última versión, en el archivo header.php

    – Therichpost

    6 de abril de 2017 a las 8:03

  • Volcar esta variable: $padre = get_post( $post->post_parent );

    – Leszek P.

    6 de abril de 2017 a las 8:03

  • No entendí tu punto.

    – Therichpost

    6 de abril de 2017 a las 8:51

Para la identificación de la página principal

$post->post_parent;

Para el título de la página actual

$post->post_title;

  • Probar $wp_query->post->post_title;

    – Ritz Genial

    6 de abril de 2017 a las 9:22

avatar de usuario
ejaz parvi

Para la identificación de la página principal

<?php
  echo wp_get_post_parent_id(get_the_ID());
?>    

En Gutenberg:

wp.data.select('core/editor').getEditedPostAttribute('parent')

Espero que sea útil para alguien.

Si quieres, por ejemplo: crea un enlace al padre de la publicación:

<a href="<?= get_permalink($post->post_parent) ?>">
  <?= get_the_title($post->post_parent) ?>
</a>
&rarr; <?= the_title() ?>

lo que dará como resultado, es decir:

Últimas noticias → Título de alguna noticia

Para el tema Astra y para la plantilla de página look.php hice esto: $post->post_parent; nbot funcionará porque en mi caso la función está fuera del circuito. Lo ejecuto a través de functions.php. $post->post_parent funciona perfectamente cuando se inserta en la plantilla de página, pero no cuando se edita la función de tema;)

function add_script_before_header() {

  $current = $post->ID;
  $parent = $post->post_parent;
  $grandparent_get = get_post($parent);
  $grandparent = $grandparent_get->post_parent;

  if ($root_parent = get_the_title($grandparent) !== $root_parent = get_the_title($current)) {
    echo get_the_title($grandparent); 
  }

  $after = $parent;
  if ( is_page_template( 'look.php' ) ) {
            echo $after . ' - ';
  }
}

¿Ha sido útil esta solución?