Consulta por título de publicación "similar"

11 feb 2013, 12:21:45
Vistas: 96.3K
Votos: 17

He utilizado un tipo de publicación personalizada para uno de mis sitios web. El tipo de publicación personalizada contiene datos de tarjetas raspaditas junto con algunos campos personalizados.

He desarrollado una aplicación Android para gestionar esos elementos desde el dispositivo Android.

En la aplicación Android, quiero mantener una función de búsqueda que ayudará a los usuarios administradores a buscar números de tarjetas para gestionarlas.

Puedo usar la consulta de WordPress para buscar por título.

// Código
$args = array("post_type" => "mytype", "name" => $title);
$query = get_posts( $args );

Solo puede proporcionar resultados si proporciono el título exacto. Pero necesito recuperar todos los elementos con título similar.

¿Alguna sugerencia?

1
Comentarios

En lugar de usar get_posts() puedes utilizar la consulta de búsqueda predeterminada de WordPress que te proporcionará los resultados del término buscado. También te dará todos los resultados coincidentes con todos tus términos de búsqueda.

Rohit Pande Rohit Pande
11 feb 2013 12:44:56
Todas las respuestas a la pregunta 3
2
33

Puedes usar el parámetro de búsqueda de wp_query:

$args = array("post_type" => "mytype", "s" => $title);
$query = get_posts( $args );

O puedes obtener posts basados en el título a través de la clase wpdb:

global $wpdb;
$myposts = $wpdb->get_results( $wpdb->prepare("SELECT * FROM $wpdb->posts WHERE post_title LIKE '%s'", '%'. $wpdb->esc_like( $title ) .'%') );

Luego obtendrás el objeto post en esta forma:

foreach ( $myposts as $mypost ) 
{
    $post = get_post( $mypost );
    //ejecuta tu código de salida aquí
}
11 feb 2013 12:52:20
Comentarios

¿Esto funciona en 2019?

Naren Verma Naren Verma
12 dic 2019 20:58:49

Ten en cuenta que usar s en get_posts buscará más que solo el título... también busca en el contenido.

FluffyKitten FluffyKitten
11 jul 2020 18:48:00
3
13

Mucho más simple hoy en día:

$posts = get_posts([
    'post_type'  => 'recipe', // Tipo de post: receta
    'title' => 'Chili Sin Carne', // Título exacto a buscar
]);

$posts contendrá todas las recetas con el título exacto "Chili Sin Carne".

2 nov 2020 04:00:14
Comentarios

OP estaba pidiendo una coincidencia difusa

alexg alexg
11 may 2021 18:27:25

Ups, tienes razón. Solo leí el título :$

Jules Jules
15 may 2021 13:18:02

gracias. funcionó

Akshay K Nair Akshay K Nair
27 dic 2021 13:29:45
0

Puedes hacer algo como esto:

$posts = get_posts([
            'post_type'   => 'recipe',
            'post_status' => ['publish', 'draft', 'private'],
            's'           => 'texto de búsqueda', 
            'search_columns' => ['post_title']
        ]);

Esto buscará solo en el post_title de los posts

9 dic 2023 13:53:39