给分类栏目添加广告位,等同于添加自定义字段。
如果需要依据不同的栏目给广告位添加不同的tag来源,需要在模板页面中获取栏目的分类别名,读取不同的广告。
图1
如图1所示添加新的图片输入框
1. 实现的代码是把下面的代码放在function.php文件中
/**IMAGES ADS**/ global $texonomy_slug_images; $texonomy_slug_images='category'; add_action($texonomy_slug_images.'_add_form_fields','categoryimages'); function categoryimages($taxonomy){ ?> <div> <label for="tag-ad">栏目广告位1</label> <input type="text" name="tag-ad" id="tag-ad" value="" /><br /><span>请在此输入广告图片链接。</span> </div> <?php } add_action($texonomy_slug_images.'_edit_form_fields','categoryimagesedit'); function categoryimagesedit($taxonomy){ ?> <tr class="form-field"> <th scope="row" valign="top"><label for="tag-ad">栏目广告位1</label></th> <td><input type="text" name="tag-ad" id="tag-ad" value="<?php echo esc_url(get_option('_category_images'.$taxonomy->term_id)); ?>" /><br /><span class="description">请在此输入广告图片链接。</span></td> </tr> <?php } add_action('edit_term','categoryimagessave'); add_action('create_term','categoryimagessave'); function categoryimagessave($term_id){ if(isset($_POST['tag-ad'])){ if(isset($_POST['tag-ad'])) update_option('_category_images'.$term_id,$_POST['tag-ad'] ); } }
2.建立如下模板(category-ad.php)根据分类别名读取自定义字段的内容
<?php
/*
Template Name: Category_adsone
*/
?>
<?php
if(is_category()){
$category_info = get_the_category();
$category_id = $category_info[0]->cat_ID;
$cat_image = get_option('_category_images'.$category_id);
$cat = get_query_var('cat');
$yourcat = get_category($cat);
?>
<a rel="nofollow" href="###?tg=SAT&tag1=FX114@<?php echo $yourcat->slug;?>@R1" target="_blank"> <img name="ads"src="<?php echo $cat_image;?>"/></a>
<?php } ?>
3.在Sidebar.php中调用模板(category.php)即可实现
<?php get_template_part( 'inc/category-ads' ); ?>
4.如果想在单个文章页面调取分类栏目的分类名、分类别名、分类字段,要在single.php文件中添加如下代码:
<?php $cats=get_the_category();
foreach($cats as $cat)
$cat_id=$cat->cat_ID;
//echo $cat_id; 分类id
//echo $cat->slug; 分类别名
$cat_image = get_option('_category_images'.$cat_id);
$cat_imagetwo = get_option('_category_ad'.$cat_id);
?>
<a class="ad-a2" rel="nofollow" href="###?tg=SAT&tag1=FX114@<?php echo $cat->slug;?>@R2" target="_blank"> <img src="<?php echo $cat_imagetwo;?>"/></a>
5.如果想添加多个字段只用复制写入function中的代码,并另定义字段名名称$texonomy_slug_images,黄色部分的代码另起名字即可。