El hombre requería elemento de búsqueda php i. Cree un tipo de publicación personalizada (Tipo de publicación personalizada) con categorías personalizadas (Taxonomía personalizada)

SSY significa "Siddha Samadhi Yoga" (a menudo ampliado como "Ciencia del Yoga del Silencio") donde Siddha significa "algo (es decir, conocimiento) que está probado o logrado", Samadhi significa "un estado en el que el intelecto es ecuánime" y Yoga significa "unión con el yo superior".

SSY es el conocimiento fundamental de la vida. Nuestros antiguos rishis habían formulado un modo único de entrenamiento llamado Brahmopadesam, que es una instrucción sobre la ciencia de no hacer y experimentar la quietud interior y la abundancia exterior. Provoca un cambio radical en la perspectiva de la vida y produce una notable madurez en el individuo. SSY no es más que la versión actual de esta antigua ciencia de Brahmopadesam.

SSY como programa de formación lo ofrece Life Yessence Academy (LiYA) y es el programa insignia de la institución. Al ser el programa insignia, se ha convertido en sinónimo del nombre de la organización. Profesores de LiYA imparten formaciones de este gran conocimiento en muchos lugares del mundo. El capítulo indio de LiYA se llama Rishi Samskruti Vidya Kendra (RSVK).

“Yo soy el Cuerpo” es la primera noción que mata el despertar. SSY es el proceso
Entrar en Samadhi, el estado de desapego total. "
-Guruji

Tareas principales:

  • implementar la búsqueda de tal manera que después de ingresar una consulta de búsqueda en una línea, los resultados de la búsqueda aparezcan debajo de esta línea
  • una solicitud de un resultado debe ocurrir solo después de que se haya ingresado la consulta de búsqueda

¡Está bien, vámonos!

Un diseño aproximado del bloque con una línea de búsqueda y un apodo div donde agregaremos resultados de búsqueda:

Porque La búsqueda está disponible en el encabezado del sitio, agreguemos los scripts de búsqueda correspondientes y el estilo de los resultados:

//cortar la búsqueda: $APLICACIÓN->AddHeadScript("/search/ajax_search.js"); $APLICACIÓN->AddHeadScript("/search/jquery.mCustomScrollbar.js"); $APLICACIÓN->SetAdditionalCSS(SITE_TEMPLATE_PATH . "/css/ajax_search.css"); $APLICACIÓN->SetAdditionalCSS(SITE_TEMPLATE_PATH . "/css/jquery.mCustomScrollbar.min.css");

Ahora veamos qué hay en nuestro ajax_search.js:

Función get_result ()( //borrar los resultados de la búsqueda $("#search_result").html(""); //aún no he recibido los resultados de la búsqueda; muestra el precargador $("#search_result").append(" "); $.ajax(( tipo: "POST", url: "/search/ajax_search.php", datos: "q="+q, tipo de datos: "json", éxito: función(json)( //borrar precargador $("#search_result").html(""); $("#search_result").append(""); //agrega cada elemento de la matriz json dentro del div con class="live-search" ( diseño puedes usar el tuyo) $.each(json, function(index, element) ( $("#search_result").find(".live-search").append(""+element.TITLE+""+element. BODY_FORMATED+" "); //console.log (element.BODY_FORMATED )); //estilo de desplazamiento $(".live-search").mCustomScrollbar(( scrollInertia: 500 ) )); 0; var q = ""; $(documento).ready(función() ( $("#q").keyup(función() ( q = this.value; clearTimeout(timer); timer = setTimeout(get_result, 1000) ; )); $("#reset_live_search").clic(función() ( $("#search_result").html(""); ));

función keyup llamamos a la función get_result(), que en realidad llena el apodo div con id="search_result" en Ajax.

mCustomScrollbar es solo una llamada de estilo (puedes desactivarlo).

Recibimos datos de /search/ajax_search.php en formato JSON.

Todo está claro con el componente JS, ahora veamos qué pasa en ajax_search.php:

En este caso, la búsqueda se realiza mediante el método Search de la clase Bitrix CSearch. En PARAM2 escribimos en qué bloque de información estamos buscando. Insertamos los resultados de la búsqueda en la matriz $result. Tenga en cuenta que $res['ITEM_ID'] puede contener un elemento o una sección. Dependiendo de lo que encontramos, en $result_item['BODY_FORMATED'] colocamos el título de la sección o un fragmento de texto del elemento del bloque de información encontrado.

Cree un tipo de publicación personalizada (Tipo de publicación personalizada) Artículos con categorías personalizadas (Taxonomía personalizada) Categoría de artículos.

En mi caso, todos los registros estándar son Productos, por lo que mostraremos Artículos a través de registros personalizados.

En el archivo de funciones funciones.php registramos un tipo de publicación personalizada Artículos:

Función wptp_create_post_type() ( $labels = array("nombre" => __("Artículos"), "singular_name" => __("Artículos"), "add_new" => __("Nuevo artículo"), "add_new_item" => __("Agregar nuevo artículo"), "edit_item" => __("Editar artículo"), "new_item" => __("Nuevo artículo"), "view_item" => __("Ver artículo"), "search_items" => __("Buscar artículos"), "not_found" => __("No se encontraron artículos"), "not_found_in_trash" => __("No se encontraron artículos en la Papelera"),); $labels, "has_archive" => verdadero, "público" => verdadero, "jerárquico" => falso, "menu_position" => 5, "supports" => array("título", "editor", "extracto", "campos personalizados", "miniatura"),);

Si desea que se muestren categorías estándar en publicaciones personalizadas, vincúlelas a la taxonomía de Categorías:

"taxonomías" => matriz("categoría"),

Si también crea taxonomías personalizadas para publicaciones personalizadas, entonces debe vincularlas con las taxonomías creadas. Si tomamos el ejemplo siguiente, estas serán categorías_artículos;

"taxonomías" => array("artículos_categoría"),

Luego, para el tipo de publicación de Artículos personalizados, registramos las taxonomías de 'Categoría de artículo' para que diferentes publicaciones puedan pertenecer a diferentes categorías.

Función wptp_register_taxonomy() ( Register_taxonomy("articles_category", "articles", array("labels" => array("name" => "Categorías de artículos", "singular_name" => "Categoría de artículos", "search_items" => " Buscar categorías de artículos", "all_items" => "Todas las categorías de artículos", "edit_item" => "Editar categorías de artículos", "update_item" => "Actualizar categoría de artículo", "add_new_item" => "Agregar nueva categoría de artículo", "new_item_name" => "Nuevo nombre de categoría de artículo", "menu_name" => "Categoría de artículo",), "jerarchical" => true, "sort" => true, "args" => array("orderby" => "term_order"), "show_admin_column" => verdadero)); add_action("init", "wptp_register_taxonomy");

Para una taxonomía personalizada, puede cambiar el slug por uno más hermoso para que no sea artículos_categoría, pero debe asegurarse de que dichos slugs ya no existan en otras páginas o publicaciones; de lo contrario, habrá problemas:

"reescribir" => matriz("slug" => "blog"),

Al cambiar slugs, debe actualizar la configuración de "Enlaces permanentes" en el panel de administración; de lo contrario, recibirá un error 404 en lugar de la página deseada.

Se pueden encontrar más ejemplos aquí. Pero me ayudó a poner todo este código en orden, por lo que estoy muy agradecido al autor.

El archivo single.php es responsable de la apariencia de una publicación personalizada, pero para cambiar la apariencia de una publicación personalizada, puede crear un archivo single-(post_type).php; en mi caso será single-articles.php con su propio contenido.

Ahora necesitas mostrar publicaciones personalizadas en la página. De forma predeterminada, el archivo index.php es responsable de mostrar el archivo de publicaciones personalizadas. Pero puedes crear un archivo que será responsable de mostrar entradas personalizadas en tu taxonomía.

La opción 1 es la más correcta. Mostramos las entradas en la taxonomía de la misma manera que en una categoría normal.

Para hacer esto, cree un archivo taxonomy-(taxonomy).php; en mi caso será taxonomy-articles_category.php y en él mostramos el ciclo habitual, como para las entradas estándar en una categoría:

En el archivo tax-item.php mostramos los datos que necesitamos obtener de cada publicación, por ejemplo, título, enlace de la publicación, miniatura y extracto.

En el archivo pagination.php mostramos la paginación en este formato.

El ciclo no se puede cambiar, la paginación funciona muy bien. Esta es la mejor opción para mostrar taxonomías personalizadas.

Opción 2: si no hay taxonomías personalizadas, simplemente puede obtener todas las publicaciones personalizadas en forma de Archivo

Para hacer esto, en la plantilla creamos un archivo archive-(post_type).php; en mi caso será archive-articles.php, en el cual, al igual que en la taxonomía, mostramos un bucle normal, solo que en lugar del Título de taxonomía: mostramos el nombre del tipo de publicación personalizada:

Con esta opción, si no se ha creado una página de archivo para una publicación personalizada, puede obtener una lista de todas las publicaciones personalizadas utilizando el enlace directo BLOG_URL?post_type=(post_type) o en mi caso http://site.com/ artículos/ .

Opción 3. Simplemente muestre todas las entradas de artículos personalizados en una página con una plantilla determinada

get_template_part("incluir/artículo de impuestos"); – en el archivo tax-item.php muestro el contenido de la publicación que necesito para mostrar las publicaciones dentro del bucle (título, miniatura, fecha, cita, etc.)

Esta opción muestra todos los artículos de la página, independientemente de las taxonomías (categorías).

Y si necesitamos mostrar cada categoría por separado con sus propias noticias, utilizamos la primera opción descrita anteriormente.

Dicho esto, si está utilizando el complemento Yoast SEO y sus rutas de navegación:

Luego, cuando selecciona la taxonomía “Categoría de artículos” en la “Taxonomía para mostrar en rutas de navegación para tipos de publicaciones” en la configuración del complemento, en las rutas de navegación recibirá un enlace a la categoría a la que pertenece la Noticias con otras opciones para mostrar personalizadas; publicaciones, esto no se pudo hacer.

Del autor: Saludos amigos. En este artículo, continuaremos implementando la búsqueda en vivo para el sitio. ¿Qué es la búsqueda en vivo? Lo encuentras todo el tiempo cuando buscas algo en Google o Yandex. Tan pronto como empiece a escribir una consulta de búsqueda, el motor de búsqueda inmediatamente comenzará a ofrecerle opciones, entre las cuales sólo podrá elegir la más adecuada. Algo conveniente, ¿no? Intentemos implementar algo similar.

Puede descargar los archivos fuente del artículo actual desde . Puedes encontrar la primera parte del artículo en.

Entonces, en la primera parte preparamos la base de datos que se usará para la búsqueda en vivo y también adjuntamos el widget Autocompletar de la biblioteca jQuery UI al campo de búsqueda de nuestra página. Por ahora, el widget funciona con datos de prueba, pero ahora lo arreglaremos.

En primer lugar, especifiquemos otra fuente de datos para el widget, que será, por ejemplo, el archivo search.php, que también debemos crear.

$(función())( $("#search").autocomplete(( fuente: "search.php", )); ));

Ahora escribiré cualquier carácter en el campo de búsqueda y veré qué sucede en la consola del navegador.

Como puede ver, se envía una solicitud GET con el parámetro término, cuyo valor es la cadena escrita en el campo de búsqueda. En este caso, todo sucede de forma asincrónica, sin recargar la página, es decir. Se utiliza AJAX.

Genial, ahora solo queda aceptar la solicitud de búsqueda entrante y darle una respuesta. Para hacer esto, deberá establecer una conexión con el servidor de la base de datos y escribir un código simple que reciba datos de la base de datos cuando lo solicite. El código en el archivo search.php será algo como esto:

$db = mysqli_connect("localhost", "root", "", "world") o die("No hay conexión a la base de datos"); mysqli_set_charset($db, "utf8") o die("La codificación de la conexión no está establecida"); /** * búsqueda autocompletada **/ function search_autocomplete())( global $db; $search = trim(mysqli_real_escape_string($db, $_GET["term"])); $query = "SELECCIONAR Nombre DE ciudad DONDE Nombre COMO " %($búsqueda)%" LÍMITE 10"; $res = mysqli_query($db, $consulta); $resultado_búsqueda = matriz(); while($fila = mysqli_fetch_assoc($res))( $resultado_búsqueda = matriz("etiqueta " => $fila["Nombre"]); return $resultado_búsqueda; ) if(!empty($_GET["término"]))( $búsqueda = search_autocomplete(); salida(json_encode($búsqueda)); )

$ db = mysqli_connect ("localhost", "root", "", "world") o die ("Sin conexión a la base de datos");

mysqli_set_charset($db, "utf8") o die("Codificación de conexión no establecida");

* buscar autocompletar

función buscar_autocompletar() (

global$db;

$búsqueda = trim(mysqli_real_escape_string($db, $_GET["term"]));

$res = mysqli_query($db, $consulta);

$resultado_búsqueda = matriz();

mientras ($fila = mysqli_fetch_assoc($res)) (

$resultado_búsqueda = matriz("etiqueta" => $fila["Nombre"]);

devolver $resultado_búsqueda;

si (! vacío ($ _GET [ "término" ] ) ) (

$búsqueda = búsqueda_autocompleta();

salir(json_encode($búsqueda));

Tenga en cuenta que la función search_autocomplete, que recibe datos a pedido, debe devolver estos datos en un formato determinado: debe ser una matriz con las claves de etiqueta y los valores de las ciudades encontradas; Después de llamar a la función, los datos deben convertirse al formato JSON.

Queda por comprobar el funcionamiento de nuestra búsqueda en vivo. Para hacer esto, como la última vez, escribamos solo una letra: a:

¡Excelente! En respuesta, recibimos una docena de ciudades cuyos nombres contenían la letra ingresada. Si continuamos escribiendo el nombre, la lista de opciones cambiará, es decir. con cada letra se enviará una nueva solicitud AJAX.

La mejor manera de mantener a un usuario en un sitio es permitirle encontrar lo que busca. Si crea un sistema conveniente para esto, el nivel de preferencia por su sitio aumentará y el usuario definitivamente regresará para encontrar lo que le interesa.

Le mostraré cómo crear un formulario de búsqueda simple pero funcionalmente efectivo que se utilizará para buscar artículos en el sitio. Los resultados aparecerán en la página sin necesidad de recargas, lo que sin duda es la mejor forma de presentar la información.

Crearé 2 archivos: search.php, que contendrá HTML y JavaScript. El segundo archivo, do_search.php contendrá el código PHP. Comencemos a crear el primer archivo:

PHP, demostración de búsqueda de jQuery $(function() ( $(".search_button").click(function() ( // obtiene lo que escribió el usuario var searchString = $("#search_box").val(); // formulario una cadena de consulta var data = "search="+ searchString; // si searchString no está vacía if(searchString) ( // realiza una solicitud ajax $.ajax(( tipo: "POST", url: "do_search.php", data: data, beforeSend: function(html) ( // se ejecutará antes de que se llame a la solicitud $("#results").html(""); $("#searchresults").show(); $(". word").html (searchString); ), éxito: function(html)( // se ejecutará después de recibir los resultados $("#results").show(); $("#results").append(html) ; ) ) devolver falso;
Intente ingresar la palabra ajax

En este archivo hemos creado un formulario HTML normal que envía una solicitud POST al back-end: el archivo do_search.php.

El código PHP contiene comentarios para que puedas entender fácilmente cómo funciona el script. Si hay coincidencias en la base de datos, se las muestra a su usuario, resaltando en negrita las palabras que el usuario buscó.

Vamos a darle un poco de CSS:

Cuerpo( familia de fuentes:Arial, Helvetica, sans-serif; ) *( margen:0;relleno:0; ) #contenedor ( margen: 0 auto; ancho: 600px; ) a ( color:#DF3D82; decoración de texto: none ) a:hover ( color:#DF3D82; decoración de texto:subrayado; ) ul.update ( estilo de lista:none;tamaño de fuente:1.1em; margin-top:10px ) ul.update li( height:30px; border-bottom:#dedede solid 1px; text-align:left;) ul.update li:first-child( border-top:#dedede solid 1px; height:30px; text-align:left; ) #flash (margen- arriba: 20px; alineación de texto: izquierda; ) #resultados de búsqueda (alineación de texto: izquierda; margen superior: 20px; pantalla: ninguna; familia de fuentes: Arial, Helvetica, sans-serif; tamaño de fuente: 16px; color: #000; ) .word ( peso de fuente: negrita; color: #000000; ) #search_box ( relleno: 4px; borde: sólido 1px #666666; ancho: 300px; alto: 30px; tamaño de fuente: 18px; -moz- radio de borde: 6px; -webkit-radio-de-borde: 6px; ) .search_button ( borde:#000000 sólido 1px; relleno: 6px; color:#000; peso de fuente: negrita; tamaño de fuente:16px;-moz- radio de borde: 6px; -webkit-radio-de borde: 6px). encontrado (peso de fuente: negrita; estilo de fuente: cursiva; color: #ff0000; ) h2 (margen derecho: 70px;)

Ya has aprendido a crear un formulario de búsqueda simple que funciona sin recargar la página. Espero que hayas disfrutado la lección.




Arriba