作用:点击文章标题直接跳转到外部网址链接。实现过程非常简单,利用了 wordpress 强大的自定义字段~
首先,打开主题文件 functions.php,粘贴下面的代码到里面:
function lxtx_post_link() {
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 $link;
}
再把主题中输出文章固定链接地址的函数:the_permalink() 替换为我们上面自定义的这个函数:lxtx_post_link() 即可!
最后,当你要将文章链接到博客之外的页面时,只要在这篇文章中创建自定义字段url1或title_url或url_title ,再输入外部URL地址作为值就可以了。完成这个操作后,当你发表一篇文章时,系统会查找字段url1或title_url或url_title的值,如果找到,那么就会直接链接到外部站点而不是本博客文章;如果没有找到自定义字段值,就会简单地显示链接本身。
额外补充1
WordPress的分类页、Search页,Tag页等输出的文章列表时,如果想在中间位置(比如第5个文章后面)出现,可以用下面的代码:
<?php if ($wp_query->current_post == 4) : ?>
<?php if ($wp_query->found_posts < 5 and $wp_query->current_post == ($wp_query->found_posts – 1)): ?>
$current_post 属性,必须用在 Loop 里面,表示当前显示的文章索引值;它是以 0 为起始值,如果想要在第5个文章后面,$wp_query->current_post 等于 4 即可。
$found_posts 属性,表示按 $wp_query 匹配的文章总数。
上面的代码只能放在 Loop 里面,比如 <?PHP if (have_posts()) : while (have_posts()) : the_post(); ?> 后面,表示广告代码将在文章列表的第5个文章后面出现,如果列表匹配出来的文章总数不到5个,就在列表的最后位置出现广告代码。