php

Canvia l’URL d’una entrada segons un camp personalitzat

WordPress és realment molt personalitzable. Per exemple, podem crear un gestor d’enllaços preferits on posar enllaços que ens puguin interessar amb una petita descripció. Això, òbviament, ho podem fer posant l’enllaç al cos de l’entrada i ja està, però què tal si posem l’enllaç al títol de l’entrada? És a dir, què us semblaria posar l’enllaç que ens interessa al títol de l’entrada en lloc de l’enllaç a l’entrada?

Sé que la idea sembla un pèl complicada, però en realitat no ho és. Podem fer servir aquest codi creat per Vlad Grubman que busca el valor dels camps personalitzats urll, title_url o url_title (tots alhora) i el posa en l’enllaç. Copio el codi tal i com el vaig trobar. Com sempre, per a fer-lo servir l’heu de col·locar al vostre arxiu functions.php:

/*
*		This function outputs post title and
*		links it either to posts's permalink 
*		(default WordPress behavior) or to
*		external link supplied in custom field
*		that should have any of the following names:
*		url1, title_url, url_title. The value of
*		the custom key should be the target URL.
*		Example: 'url1' = 'http://www.istudioweb.com/'
*
*		(C) 2008 by Vlad Grubman, www.istudioweb.com
*		Updated 11/14/2008 	-		updated way to get permalink
*
*/
function print_post_title() { 
	global $post;
	$thePostID = $post->ID;
	$post_id = get_post($thePostID);
	$title = $post_id->post_title;
	$perm  = get_permalink($post_id);
	$post_keys = array(); $post_val  = array();
	$post_keys = get_post_custom_keys($thePostID);
 
	if (!empty($post_keys)) {
  	foreach ($post_keys as $pkey) {
    	if ($pkey=='url1' || $pkey=='title_url' || $pkey=='url_title') {
      	$post_val = get_post_custom_values($pkey);
    	}
  	}
  	if (empty($post_val)) {
    	$link = $perm;
  	} else {
    	$link = $post_val[0];
  	}
	} else {
  	$link = $perm;
	}
	echo '<h3><span><?php the_time($datetitol) ?></span><span class="title"><a href="'.$link.'" rel="bookmark" title="'.$title.'">'.$title.'</a></span></h3>';
}

Ara hem d’editar l’arxiu (o arxius) on vulguem que aparegui aquest nou enllaç (index.php, single.php… per exemple). Haurem de buscar la línia de dins del loop que diu alguna cosa semblant a:

<a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title(); ?>"><?php the_title(); ?></a>

I canviar-la per això:

<?php print_post_title() ?>

Jo he fet servir aquest codi en un altre blog i funciona a la perfecció. Simplement heu de crear un camp personalitzat des de l’editor d’entrades que es digui urll, title_url o url_title i posar-hi com a valor l’adreça sencera que volem.

Etiquetes: , , ,

Rss Feed Tweeter button Facebook button Technorati button Reddit button Myspace button Linkedin button Webonews button Delicious button Digg button Stumbleupon button Newsvine button Youtube button