tag obtener name get_the_tags first codex all php wordpress

php - obtener - Wordpress Obtenga la ID de página fuera del ciclo



wordpress get first tag (11)

Quiero obtener la identificación de la página antes de comenzar el ciclo en Wordpress. estoy usando

$page = get_query_var(''page_id'');

Aparentemente, no devuelve nada.

Solo quiero verificar una página para su ID y agregar una clase a la etiqueta <body> basada en ella.


Esta función obtiene id de una página actual.

get_the_ID();


Este es el código correcto.

echo $post->ID;


Lo hice de la siguiente manera y me funcionó a la perfección.

Primero declaró una variable global en el header.php, asignando el ID de la publicación o página antes de que cambie, ya que el LOOP le asigna el ID de la última entrada que se muestra:

$GLOBALS[''pageid] = $wp_query->get_queried_object_id();

Y para usar en cualquier lugar de la plantilla, ejemplo en footer.php:

echo $GLOBALS[''pageid];



Si de alguna manera buscó este tema debido a la página de la publicación (página de índice alternativa cuando usa la página frontal estática), entonces la respuesta correcta es esta:

if (get_option(''show_on_front'') == ''page'') { $page_id = get_option(''page_for_posts''); echo get_the_title($page_id); }

(tomado del título de Forrst | Echo WordPress "Posts Page" - Algunos códigos de tammyhart )


Si está utilizando get_query_var(''page_id'') permanentes bastante bonitos, get_query_var(''page_id'') no funcionará.

En su lugar, obtenga la ID del objeto consultado desde $wp_query global :

// Since 3.1 - recommended! $page_object = get_queried_object(); $page_id = get_queried_object_id(); // "Dirty" pre 3.1 global $wp_query; $page_object = $wp_query->get_queried_object(); $page_id = $wp_query->get_queried_object_id();


Si estás en una página y esto no funciona:

$page_object = get_queried_object(); $page_id = get_queried_object_id();

puedes intentar construir el enlace permanente manualmente con PHP para que puedas buscar la ID de la publicación:

// get or make permalink $url = !empty(get_the_permalink()) ? get_the_permalink() : (isset($_SERVER[''HTTPS'']) ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"; $permalink = strtok($url, ''?''); // get post_id using url/permalink $post_id = url_to_postid($url); // want the post or postmeta? use get_post() or get_post_meta() $post = get_post($post_id); $postmeta = get_post_meta($post_id);

Es posible que no capte todos los enlaces permanentes posibles (especialmente porque estoy eliminando la cadena de consulta), pero puede modificarlo para adaptarlo a su caso de uso.


Si estás fuera del Loop de WordPress no puedes usar ninguno de los métodos de wordpress, entonces debes usar php puro.

Puedes usar este código Y seguro que te ayudará :)

$page_id = @$_GET[''page_id'']; if (!is_numeric($page_id)) { // Then the uri must be in friendly format aka /my_domain/category/onepage/ // Try this //$path = ''/www/public_html/index.php/''; ///$path = ''/my_domain/category/onepage/''; $path = $_SERVER[''REQUEST_URI'']; // Clean the uri //$path = str_replace(''/'', '''', $page); $path = str_replace(''.php'', '''', $path); //$path = str_replace(''?s='', '''', $path); $path = $path ? $path : ''default''; $path_len = strlen($path); $last_char = substr($path, $path_len -1); //echo $last_char; $has_slash = strpos($last_char, "/"); //echo $has_slash; if ($has_slash === 0) : $path = substr($path, 0, $path_len -1); elseif ($has_slash === null) : $path = substr($path, 0, $path_len); endif; //echo "path: ".$path; // ''/www/public_html/index'' $page = substr(strrchr($path, "/"), 1); echo "page: ".$page; // ''index'' } $my_page_id = 31; $my_page = ''mypage''; //echo "page: ".$page; //echo "page_id ".$page_id; if($page_id == $my_page_id || $page == $my_page) { // your stuff.... }

¡Disfrutar!


También puede crear una función genérica para obtener el ID de la publicación, ya sea dentro o fuera del bucle (maneja ambos casos):

<?php /** * @uses WP_Query * @uses get_queried_object() * @see get_the_ID() * @return int */ function get_the_post_id() { if (in_the_loop()) { $post_id = get_the_ID(); } else { global $wp_query; $post_id = $wp_query->get_queried_object_id(); } return $post_id; } ?>

Y simplemente hazlo:

$page_id = get_the_post_id();


Use esta $ publicación global en su lugar:

global $post; echo $post->ID;


Utilice a continuación dos líneas de código para obtener la página actual o ID de la publicación

global $post; echo $post->ID;