Mostrar campo personalizado y descargar libro desde página similar a single.php

  • Autor Autor Delmon
  • Fecha de inicio Fecha de inicio
Delmon

Delmon

Épsilon
Programador
Verificación en dos pasos activada
Verificado por Whatsapp
Hola amigos de forobeta, recurro a ustedes una vez más por que como les comenté en un post anterior, ando haciendo un blogs de libros y ya casi para terminar el diseño me surge éste error.

Lo que tengo hasta ahora es algo mas o menos como ésto:

www.miweb.com/leer/la-odisea.html (single.php)

En donde muestro la carátula del libro y un lector online de PDF.
Ahora, lo que deseo es poner una imagne que sea Descargar Libro y que me mande a algo como:

www.miweb.com/descargar/la-odisea.html

Y que ahí me muestre los links de descarga, los cuales fueron insertados mediante custom fields.

Es ésto posible??
 
la-odisea si es el slug del post podrías sacar los datos de ese campo personalizado a traves del slug. Lo primero, crea la página "descargar" en el wordpress. Luego en el functions.php de el theme, copia esto:

Insertar CODE, HTML o PHP:
add_filter( 'rewrite_rules_array','my_insert_rewrite_rules' );
add_filter( 'query_vars','my_insert_query_vars' );
add_action( 'wp_loaded','my_flush_rules' );

function my_flush_rules(){
	$rules = get_option( 'rewrite_rules' );

	if ( ! isset( $rules['descargar/(.*)?$'] ) ) {
		global $wp_rewrite;
	   	$wp_rewrite->flush_rules();
	}
}

function my_insert_rewrite_rules( $rules )
{
	$newrules = array();
	$newrules['descargar/(.*)?$'] = 'index.php?pagename=descargar&id=$matches[1]';
	return $newrules + $rules;
}

function my_insert_query_vars( $vars )
{
    array_push($vars, 'id');
    return $vars;
}

Actualiza los permalinks y por último, crea un archivo page-ID DE LA PAGINA DESCARGAR.php, ponle el template cm a ti te guste y copia esto:

Insertar CODE, HTML o PHP:
$args=array(
  'name' => get_query_var('id'),
  'post_type' => 'post',
  'post_status' => 'publish',
  'showposts' => 1,
  'caller_get_posts'=> 1
);
$my_posts = get_posts($args);
echo get_post_meta($my_posts[0]->ID, 'nombre_del_campo', true);

y cuando accedas a descargar con el slug, mostrará el campo personalizado de ese post.
 
No me funcionó el codigo 🙁

Para explicarme bien, lo que quiero es que :

www.miweb.com/descargar/la-odisea.html

Tome los datos donde el slug es la-odisea.

Espero que me entiendan 🙁
 
Atrás
Arriba