wordpress主题给分类目录添加缩略图/图像的方法 -云顶国际

因 强大的二次开发,不少站长把开发成cms了,为了功能显得更加丰富,可以给分类目录添加缩略图,下面一起来看看如何给 wordpress 分类目录添加缩略图功能吧。

第一步在主题 functions.php 文件中添加如下代码:

/**
* plugin name: 分类图像
*/
define('z_image_placeholder', t_path."/img/random/5.jpg"); //默认缩略图
add_action('admin_init', 'z_init');
function z_init() {
$z_taxonomies = get_taxonomies();
if (is_array($z_taxonomies)) {
$zci_options = get_option('zci_options');
if (empty($zci_options['excluded_taxonomies']))
$zci_options['excluded_taxonomies'] = array();
foreach ($z_taxonomies as $z_taxonomy) {
if (in_array($z_taxonomy, $zci_options['excluded_taxonomies']))
continue;
add_action($z_taxonomy.'_add_form_fields', 'z_add_texonomy_field');
add_action($z_taxonomy.'_edit_form_fields', 'z_edit_texonomy_field');
add_filter( 'manage_edit-' . $z_taxonomy . '_columns', 'z_taxonomy_columns' );
add_filter( 'manage_' . $z_taxonomy . '_custom_column', 'z_taxonomy_column', 10, 3 );
}
}
}
// add image field in add form
function z_add_texonomy_field() {
if (get_bloginfo('version') >= 3.5)
wp_enqueue_media();
else {
wp_enqueue_style('thickbox');
wp_enqueue_script('thickbox');
}
}
// 在编辑表单中添加图像字段
function z_edit_texonomy_field($taxonomy) {
if (get_bloginfo('version') >= 3.5)
wp_enqueue_media();
else {
wp_enqueue_style('thickbox');
wp_enqueue_script('thickbox');
}
if (z_taxonomy_image_ == z_image_placeholder)
$image_text = "";
else
$image_text = z_taxonomy_image_;
echo '




'.z_script();
}
// 图片上传函数
function z_script() {
return '';
}
// 保存分类图像,同时编辑或保存期限
add_action('edit_term','z_save_taxonomy_image');
add_action('create_term','z_save_taxonomy_image');
function z_save_taxonomy_image($term_id) {
if(isset($_post['taxonomy_image']))
update_option('z_taxonomy_image'.$term_id, $_post['taxonomy_image']);
}
// 通过图片网址获取附件
function z_get_attachment_id_by_ {
global $wpdb;
$query = "select id from {$wpdb->posts} where guid = '$image_src'";
$id = $wpdb->get_var($query);
return (!empty($id)) ? $id : null;
}
// 对于给定的term_id得到分类图像的url(默认占位符图像)
function z_taxonomy_image_ {
if (!$term_id) {
if (is_category())
$term_id = get_query_var('cat');
elseif (is_tax()) {
$current_term = get_term_by('slug', get_query_var('term'), get_query_var('taxonomy'));
$term_id = $current_term->term_id;
}
}
$taxonomy_image_url = get_option('z_taxonomy_image'.$term_id);
if(!empty($taxonomy_image_url)) {
$attachment_id = z_get_attachment_id_by_;
if(!empty($attachment_id)) {
if (empty($size))
$size = 'full';
$taxonomy_image_url = wp_get_attachment_image_src($attachment_id, $size);
$taxonomy_image_url = $taxonomy_image_url[0];
}
}
if ($return_placeholder)
return ($taxonomy_image_url != '') ? $taxonomy_image_url : z_image_placeholder;
else
return $taxonomy_image_url;
}
function z_quick_edit_custom_box($column_name, $screen, $name) {
if ($column_name == 'thumb')
echo '
'; } // 缩略图列添加到类别管理 function z_taxonomy_columns( $columns ) { $new_columns = array(); $new_columns['cb'] = $columns['cb']; $new_columns['thumb'] = '图像'; unset( $columns['cb'] ); return array_merge( $new_columns, $columns ); } // 缩略图列值添加到类别管理。 function z_taxonomy_column( $columns, $column, $id ) { if ( $column == 'thumb' ) $columns = ''; return $columns; } // “更改”插入“使用该图像” function z_change_insert_button_text($safe_text, $text) { return str_replace("insert into post", "use this image", $text); } // 在类别列表中的图像 if ( strpos( $_server['script_name'], 'edit-tags.php' ) > 0 ) { add_action( 'admin_head', 'z_add_style' ); add_action('quick_edit_custom_box', 'z_quick_edit_custom_box', 10, 3); add_filter("attribute_escape", "z_change_insert_button_text", 10, 2); } // 注册插件设置 function z_register_settings() { register_setting('zci_options', 'zci_options', 'z_options_validate'); add_settings_section('zci_settings', '', 'z_section_text', 'zci-options'); add_settings_field('z_excluded_taxonomies', '排除的分类','z_excluded_taxonomies', 'zci-options', 'zci_settings'); } function z_add_style() { echo ''; }

第二步:在前台页面模板中调用这个分类缩略图:


或者

在其它页面调用代码:这里需要我添加一个分类目录id号


或者

这样就可以给主题分类目录添加缩略图了,特别是一些企业站会用到这个功能哦。

# 更多技巧,请关注「专题」

         
网站地图