Obtener el ID del objeto por URL

17 abr 2012, 16:00:34
Vistas: 20.2K
Votos: 3

Tengo una URL (como por ejemplo la URL /sample-page/), necesito el ID del objeto correspondiente. ¿Cómo lo hago?

0
Todas las respuestas a la pregunta 4
1

Prueba esta función:

url_to_postid( $url );

El codex de WordPress es tu amigo. Una rápida búsqueda en Google podría haberte dado la respuesta.

17 abr 2012 16:31:07
Comentarios

"Una rápida búsqueda en Google podría haber dado la respuesta", ¿por eso todo el mundo usa StackExchange? Este comentario merece un voto negativo.

Ingo Steinke Ingo Steinke
18 jul 2023 19:15:36
3

Las otras respuestas son válidas, pero solo para agregar otro método (generalmente desconocido, pero muy útil) que es proporcionado por una función llamada: get_page_by_path();

$page = get_page_by_path('parent-page/sub-page');

Vale la pena señalar que el parámetro path incluso puede tomar un SLUG como parámetro. Ejemplo:

$page = get_page_by_path('your-slug-of-page-to-exclude');
wp_list_pages('exclude='.$page->ID.'&title_li=');

entonces podrías usar $page->ID

18 may 2012 05:38:55
Comentarios

No funciona, $page-ID devuelve el error Notice: Trying to get property of non-object in ....

Murhaf Sousli Murhaf Sousli
18 feb 2015 03:58:49

¿Probaste con $page->ID o $page-ID?

krembo99 krembo99
28 jun 2015 17:27:12

Es bueno saberlo, aunque no funciona para una URL generada por pll_home_url() de polylang

Ingo Steinke Ingo Steinke
18 jul 2023 19:18:32
0

Utiliza get_queried_object_id() como un mapeador para WP_Query::get_queried_object_id().

A diferencia de url_to_postid(), no necesitas conocer la URL y también funciona con taxonomías y tipos de contenido personalizados (si recuerdo correctamente).

Para ver un ejemplo de uso, revisa mi respuesta a Obtener el ID del término actual.

17 abr 2012 17:45:05
0

Tuve el mismo problema, pero solo con tipos de entradas personalizadas. Desafortunadamente url_to_postid( $url ); no funciona con tipos personalizados, así que terminé usando esta función bwp_url_to_postid($url). Esta función extiende url_to_postid( $url ); para que funcione con tipos de entradas personalizadas.

Si tienes el enlace permanente de la URL, entonces:

<?php $postLink = get_permalink($post_object->ID); ?>
<?php $postId = bwp_url_to_postid($link); ?>
<?php echo $postId ?>
28 may 2012 16:07:15