Cómo evitar que las entradas de un Custom Post Type se abran en single.php

luisazu Seguir

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
24 Ene 2014
Mensajes
58
Hola a todos,

Estoy intentando crear un sección de opiniones en un theme de Wordpress creado por mí. He creado un custom post type llamado "Opiniones" donde yo publico todas las opiniones de clientes junto con su foto, para luego mostrarlas mediante el loop en mi index.php.

Mi problema es que estas entradas que creo en el Custom Post Type enlazan con el single.php. Me gustaría poder deshabilitar que estás entradas se abriesen individualmente en single.php ya que estas opiniones solo se mostrarían en el index y no quiero que se muestre cada una por separada en el single.php.

Necesito ayuda urgente porque ya no se que hacer. Si hay otra solución para crear este área soy todo oídos ;).
 

Galbatorix

Dseda
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
13 May 2013
Mensajes
1.231
que raro, lo que a mmi me pasa es que tengo que agregar los custom tipes para que aparezcan en el loop.

en todo caso tendrias que modificar wp_query para agregarle el argumento:
Insertar CODE, HTML o PHP:
$args=array(
  'post_type' => 'mi_custom:_tipe',
  'post_status' => 'publish'
);
 

luisazu

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
24 Ene 2014
Mensajes
58
Muchisimas gracias por contestar ;) Pero creo que no me has entendido bein ;) Lo que necesito es que al crear la entrada no genere el enlace para mostrarla individualmente. Simplemente mediante el loop en una determinada zona quiero mostrar esas opiniones de clientes.

Se que si quito el permalink no podrán acceder al single.php, pero el problema es que la url se genera, y google la indexa.

No se si me explico :(
 

zurddo

Alfa
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
15 Oct 2011
Mensajes
20
Si las opiniones son entradas se genera el enlace automáticamente.
No sería mejor que lo implementaras de otro manera, crear una categoría llamada "opiniones", mediante HTML creas la zona en el index y creas un consulta con parámetros para hacer un loop de esa cateforía.
O simplemente maquetando HTML
 

Galbatorix

Dseda
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
13 May 2013
Mensajes
1.231
Muchisimas gracias por contestar ;) Pero creo que no me has entendido bein ;) Lo que necesito es que al crear la entrada no genere el enlace para mostrarla individualmente. Simplemente mediante el loop en una determinada zona quiero mostrar esas opiniones de clientes.

Se que si quito el permalink no podrán acceder al single.php, pero el problema es que la url se genera, y google la indexa.

No se si me explico :(

pus por eso, un loop normal usa como parametro para el argumento 'post_type'=>'any' y muestra todos, pero si tu especificas el tipo de post, pues nada mas te muestra ese.

Insertar CODE, HTML o PHP:
http://codex.wordpress.org/Class_Reference/WP_Query#[FONT=Menlo]Type_Parameters
[/FONT]


por cierto., ya que tuve que revisar el codex, vi esta funcion que te pueden ayudar a redifinir tu cpt.
 

luisazu

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
24 Ene 2014
Mensajes
58
- Maquetando no puede ser, porque necesito que las opiniones se inserten mediante wordpress :(
- Si hago lo de las categorías, necesitaría crear también una entrada y estaría en la misma situación.

La cuestión es generar una entrada en wordpress pero sin que generé el permalink :(

Gracias!!

---------- Post agregado el 25-ene-2014 hora: 02:40 ----------

Gracias!! Filtrar entradas por ese post-type está conseguido. Consigo todo lo que necesito que es mostrar las opiniones donde yo quiero. Pero lo que no quiero es que generé el permalink, para que ese enlace no sea indexado ni en el sitemap ni en google. Ni nadie pueda acceder.

He barajado la opción de no indexar esa entrada mediante el meta noindex. Pero el problema es que el enlace al single.php se crea.

Otra opción era que al ingresar apareciera un error 401, pero tampoco es buena práctica, ya que el enlace sigue existiendo.

Estoy investigando bastante y sigo en ello. Hay bastante gente ue pide solución a esto (en foros en inglés) pero aún no consigo dar con las solución.

Muchísimas gracias por vuestra ayuda!

---------- Post agregado el 25-ene-2014 hora: 02:42 ----------

He revisado toda esa documentación y tampoco consigo dar con la solución. Esa documentación es para crear el post-type, el post-type está bien creado porque tengo todo funcionando bien.

Gracias!
 
Última edición:

Galbatorix

Dseda
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
13 May 2013
Mensajes
1.231
Yo veo varias ocpiones
- Depende de la estructura que cree tu cpt, y si es dependeinte de la entrada podrías hacer un redirect en tu servidor http para que rediriga la url de tu cpt a la entrada madre.
- De nuevo, si cada cpt deeende de una nentrada madre, puedes agregar la url canonica de la entrada madre al cpt, asi se indexa la entrada madre y no la cpt.
- En Function Reference/register post type « WordPress Codex hay dos argumentos que te pueden ayudar: permalink_epmask y rewrite
 

luisazu

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
24 Ene 2014
Mensajes
58
1. Las opiniones son mostradas en dominio.com y no en dominio.com/custom-post-type . Según entiendo, lo que dices es que cada enlace permalink generado por cada opinión sea redireccionado a index.php que es donde muestro las opiniones. Es así?
2. No entiendo, cuando dices que depende de una entrada.
3. LO reviso ahora mismo!!

Muchas gracias por todo!

---------- Post agregado el 25-ene-2014 hora: 03:41 ----------

A la hora de resgistrar el post-type, si inserto:

'public' => false,

NO genera permalinks! Pero claro al establecerse en false, tampoco aparecen las opiniones :( . Sabes si habría alguna forma de mostrar las opiniones estableciendo este valor a false? Sigo buscando ... y probando tus soluciones.

Gracias por tu ayuda!
 

luisazu

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
24 Ene 2014
Mensajes
58
Hola Galbatorix,

Creo que he dado con la solución. Probé las redirecciones 301 y funcionaba de maravilla. Pero he optado por algo más limpio. A ver que te parece, creo que no se me escaparía nada, sobre todo en cuanto al SEO que es lo que más me preocupa.

A la hora de crear el CPT establezco los siguientes argumentos a false:

PHP:
    'public' => false,  
    'publicly_queryable' => false,  
    'has_archive' => false,

- He comprobado, que a la hora de crear una entrada dentro del CPT en el editor no se genera, ni aparece el permalink.
- Si accedo al permalink (single.php) escribiéndolo manualmente en la barra de direcciones del navegador me devuelve error 404 como que no existe.
- Como no estaba muy seguro si al no aparecer el permalink en el editor, realmente no se crearía, lo verifiqu accediendo al sitemap.xml, generado por el plugin de Yoast y verifique que cuando establezco estos valores a false no añadía las url!!

Y el loop sería:

PHP:
$wp_query->query(array(  'post_type' => 'opiniones' ,'posts_per_page' => 10)); ?> y para taxonomies 
$wp_query->query(array('categoria_opiniones' => 'socios','post_type' => 'opiniones','posts_per_page' => 10)); ?>

Creo que no se me escapa nada, y quedaría todo correcto. Me gustaría saber tu opinión por si se me escapara algo.

Y de nuevo mil gracias por todo, con tu ayuda llegué a esta solución.

Un saludo!
 
Arriba