当前位置: 首页 » 乱折腾事 » WordPress

wordpress多级菜单样式

WordPress多级菜单设置很简单,几乎所有的主题都会有菜单设置选项 但是,设置的多级菜单能利用CSS控制的样式,三级以上就不好控制,查看源码,二级及以上ul的class都是sub-menu,想要通过添加CSS来操作三级以上的菜单样式,是比较累的。好在可以通过Walker_Nav_Menu函数来控制ul的class样式,在function.php中插入以下函数 /** * Header_Menu_Walker类 * 这类名当然你随意了 */ class Header_Menu_Walker extends Walker_Nav_Menu { /** * start_lvl函数 * 这函数主要处理ul,如果ul有一些特殊的样式,修改这里 * 他这里面的$depth就是层级,一级二级三级 * $args是上面wp_nav_menu()函数定义的那个数组 * */ function start_lvl( &$output, $depth = 0, $args = array() ) { $indent = ( $depth > 0 ? str_repeat( "\t", $depth ) : '' ); // 缩进 $display_depth = ( $depth + 1); // 层级默认是0级,这里+1为了从1开始算 $classes = array( 'sub-menu', //ul是个子菜单的时候,添加这个样式 ( $display_depth % 2 ? 'menu-odd' : 'menu-even' ), //子菜单奇数加样式menu-odd,偶数加样式menu-even ( $display_depth >=2 ? 'sub-sub-menu' : '' ), //三级菜单的时候,添加这个样式 'menu-depth-' . $display_depth, //这样式主要能看出当前菜单的层级,menu-depth-2是二级呗 ); $class_names = implode( ' ', $classes ); //用空格分割多个样式名 $output .= "\n" . $indent . '' . "\n"; //把刚才定义的,那么多的样式,写到ul里面 } /** * start_el函数 * 主要处理li和里面的a * $depth和$args同上 * * @param string $output Passed by reference. Used to append additional content. * @param object $item Menu item data object. * @param int $depth Depth of menu item. Used for padding. * @param array $args An array of arguments. @see wp_nav_menu() * @param int $id Current item ID. */ function start_el( &$output, $item, $depth = 0, $args = array(), $id = 0 ) { global $wp_query; $indent = ( $depth > 0 ? str_repeat( "\t", $depth ) : '' ); // 缩进 // 定义li的样式 $depth_classes = array( ( $depth == 0 ? 'main-menu-item' : 'sub-menu-item' ), //一级的li,就main-menu-item,其余全部sub-menu-item ( $depth >=2 ? 'sub-sub-menu-item' : '' ), //三级的li,添加这个样式 ( $depth % 2 ? 'menu-item-odd' : 'menu-item-even' ), //奇数加样式menu-item-odd,偶数加样式menu-item-even 'menu-item-depth-' . $depth, //层级同上 ); $depth_class_names = esc_attr( implode( ' ', $depth_classes ) ); $classes = empty( $item->classes ) ? array() : (array) $item->classes; $class_names = esc_attr( implode( ' ', apply_filters( 'nav_menu_css_class', array_filter( $classes ), $item ) ) ); //这句我没看懂,不知道是在干啥 // 把样式合成到li里面 $output .= $indent . ''; // 处理a的属性 $attributes = ! empty( $item->attr_title ) ? ' title="' . esc_attr( $item->attr_title ) .'"' : ''; $attributes .= ! empty( $item->target ) ? ' target="' . esc_attr( $item->target ) .'"' : ''; $attributes .= ! empty( $item->xfn ) ? ' rel="' . esc_attr( $item->xfn ) .'"' : ''; $attributes .= ! empty( $item->url ) ? ' href="' . esc_attr( $item->url ) .'"' : ''; $attributes .= ' class="menu-link ' . ( $depth > 0 ? 'sub-menu-link' : 'main-menu-link' ) . '"'; //添加a的样式 $item_output = sprintf( '%1$s%3$s%4$s%5$s%6$s', $args->before, $attributes, $args->link_before, apply_filters( 'the_title', $item->title, $item->ID ), $args->link_after, $args->after ); //上面这个item_output我要说一下。这里写的有点死。 //如果一级菜单是我是菜单 //然而其他级菜单是我是菜单 //这样的情况,$args->link_before是固定值就不行了,要自行判断 //$link_before = $depth == 0 ? '' : ''; //$link_after = $depth == 0 ? '' : ''; //类似这个意思。 $output .= apply_filters( 'walker_nav_menu_start_el', $item_output, $item, $depth, $args ); } } 另附一段显示菜单描述的函数 function start_el(&$output, $item, $depth, $args) { global $wp_query; $indent = ( $depth ) ? str_repeat( "\t", $depth ) : ''; $class_names = $value = ''; $classes = empty( $item->classes ) ? array() : (array) $item->classes; $class_names = join( ' ', apply_filters( 'nav_menu_css_class', array_filter( $classes ), $item ) ); $class_names = ' class="' . esc_attr( $class_names ) . '"'; $output .= $indent . ''; $attributes = ! empty( $item->attr_title ) ? ' title="' . esc_attr( $item->attr_title ) .'"' : ''; $attributes .= ! empty( $item->target ) ? ' target="' . esc_attr( $item->target ) .'"' : ''; $attributes .= ! empty( $item->xfn ) ? ' rel="' . esc_attr( $item->xfn ) .'"' : ''; $attributes .= ! empty( $item->url ) ? ' href="' . esc_attr( $item->url ) .'"' : ''; $item_output = $args->before; $item_output .= ''; $item_output .= $args->link_before . apply_filters( 'the_title', $item->title, $item->ID ) . $args->link_after; $this_item_description.=''; $this_item_description_all=explode('+',$item->description); foreach($this_item_description_all as $this_item_description_all){ $this_item_description_one=explode('|',$this_item_description_all); $this_item_description.=''.$this_item_description_one[1].''; } $item_output .= '' . $this_item_description . ''; $item_output .= ''; $item_output .= $args->after; $output .= apply_filters( 'walker_nav_menu_start_el', $item_output, $item, $depth, $args ); } 这样,用css控制就比较好控制了,不同级别的ul样式class是不一样的!
WordPress ·

WordPress博客模板LFblog大致完成

原本计划一周完成的一个模板,陆陆续续的花了好几个星期的时间,算是第一次写的博客主题,没有亮点,只是平凡简单的自用博客主题 顺便写了一个无线端CSS,通过PHP判断是否为无线,无线时调用无线CSS,感觉字体设置的太小了 主题后台有个简单的设置项。自用还算习惯!
WordPress ·

WordPress通过小工具自定义布局主题

WordPress主题通过注册多个小工具让整站都可以通过后台小工具布局 1、注册多个小工具 if ( function_exists('register_sidebar') ) register_sidebar(array( 'name'=>'侧边栏布局', 'before_widget' => '', 'after_widget' => '', 'before_title' => '', 'after_title' => '', )); if ( function_exists('register_sidebar') ) register_sidebar(array( 'name'=>'主页布局', 'before_widget' => '', 'after_widget' => '', 'before_title' => '', 'after_title' => '', )); 效果: 2、添加小工具,如文章目录、文章评论等 class val extends WP_Widget{ function val(){ //这是定义小工具信息的函数,也是类的构建函数 } function form($instance){ //如果之前没有数据的话,设置两个默认量 $instance = wp_parse_args((array)$instance,array( 'title'=>'','orderby'=>'','order'=>'' )); //输出后台小工具表单 echo $output; } function update($new_instance,$old_instance){ $instance = $old_instance; //数据处理 return $instance; } function widget($args,$instance){ extract($args); //前台显示 echo $after_widget; } } function val(){ //注册小工具 register_widget('val'); } //widges_init,小工具初始化的时候执行val函数, add_action('widgets_init','val'); 3、将模块拖入到对应的面板 前台调用小工具: dynamic_sidebar( '侧边栏布局' ); 将所有的函数全部都封装到小工具里,实现通过拖动来自定义WordPress主题的布局
WordPress ·

WordPress一直加载很慢的原因

自从找了一份正经的工作之后,就一直都没有去管这个博客,看了下日期,似乎有一年没有去写过了。 不知道从什么时候开始,博客打开的加载速度一直很慢,期间也找过原因,比如删除谷歌字体。 然,一直都无法解决这个很慢的问题。 最近,感觉这个主题的确挺老的了,打算重写一个博客主题,参考下了代码 发现一段百度链接,而这段百度链接似乎很早以前就无法访问了。 这段是无线端打开跳转到百度无线适配的,也不知道什么时候开始,百度竟然无法打开了。 抱着试试的态度,试着删除这段JS,打开终于正常了!
WordPress ·

chuxia小清新wordpress博客主题外链图片不显示问题

chuxia小清新wordpress博客主题,会出现部分外链的图片无法在略缩图显示,原因是因为timthumb.php! 修改下 主题下的timthumb.php文件 第一种,添加允许显示的外链图片地址,搜索$ALLOWED_SITES = array(大概在131行),在)内加入图片外链的服务器,如img.32xp.com即可. 第二种是允许全部图片,直接搜索ALLOW_ALL_EXTERNAL_SITES(大概在33行左右),看到一行define (‘ALLOW_ALL_EXTERNAL_SITES’, false);把false改成true即可! 这样前面的图片就都可以显示了!
WordPress ·

wordpress非插件3D彩色标签

无意中发现知更鸟的3D标签很好看,于是乎就拷了下来! 对于wordpress,重塑的代码可能不规范,大体是这样的! 引入一个JS文件(3dtag.js,点击下载) CSS: #tag_cloud_widget {     position: relative;     width: 240px;     height: 240px;     margin: 10px auto 10px } #tag_cloud_widget a {     position: absolute;     color: #fff;     background: #d02f53;     display: block;     text-align: center;     text-overflow: ellipsis;     whitewhite-space: nowrap;     top: 0;     left: 0;     padding: 3px 5px;     border: 0 } #tag_cloud_widget a:hover {     background: #d02f53;     display: block } #tag_cloud_widget a:nth-child(n) {     background: #666;     border-radius: 3px;     display: inline–block;     line-height: 18px;     margin: 0 10px 15px 0 } #tag_cloud_widget a:nth-child(2n) {     background: #d1a601 } #tag_cloud_widget a:nth-child(3n) {     background: #286c4a } #tag_cloud_widget a:nth-child(5n) {     background: #518ab2 } #tag_cloud_widget a:nth-child(4n) {     background: #c91d13 } html: <div id=“tag_cloud_widget”>      <a href=“/tag/%e6%95%99%e7%a8%8b/” class=“tag-link-192” title=“17个话题” style=“font-size: 14px;”>教程</a>      <a href=“/tag/firefox/” class=“tag-link-36” title=“28个话题” style=“font-size: 14px;”>Firefox</a>      <a href=“/tag/utility-software/” class=“tag-link-778” title=“100个话题” style=“font-size: 14px;”>实用软件</a>      <a href=“/tag/information/” class=“tag-link-12” title=“144个话题” style=“font-size: 14px;”>网文资讯</a>      <a href=“/tag/wpplugins/” class=“tag-link-8” title=“55个话题” style=“font-size: 14px;”>plugins</a>      <a href=“/tag/%e9%97%b2%e8%a8%80%e7%a2%8e%e8%af%ad/” class=“tag-link-258” title=“44个话题” style=“font-size: 14px;”>闲言碎语</a>      <a href=“/tag/hotnews%e4%b8%bb%e9%a2%98/” class=“tag-link-453” title=“46个话题” style=“font-size: 14px;”>HotNews主题</a>      <a href=“/tag/wordpress/” class=“tag-link-6” title=“362个话题” style=“font-size: 14px;”>WordPress</a>      <a href=“/tag/photoshop/” class=“tag-link-775” title=“33个话题” style=“font-size: 14px;”>Photoshop</a>      <a href=“/tag/hotnews-pro/” class=“tag-link-265” title=“78个话题” style=“font-size: 14px;”>HotNews Pro</a>      <a href=“/tag/wordpress-course/” class=“tag-link-128” title=“91个话题” style=“font-size: 14px;”>Wordpress教程</a>      <a href=“/tag/%e5%93%8d%e5%ba%94%e5%bc%8f/” class=“tag-link-617” title=“33个话题” style=“font-size: 14px;”>响应式</a>      <a href=“/tag/%e5%8e%9f%e5%88%9b%e4%b8%bb%e9%a2%98/” class=“tag-link-341” title=“46个话题” style=“font-size: 14px;”>原创主题</a>      <a href=“/tag/webdesign/” class=“tag-link-777” title=“137个话题” style=“font-size: 14px;”>Web前端</a>      <a href=“/tag/uidesign/” class=“tag-link-776” title=“39个话题” style=“font-size: 14px;”>设计资源</a>      <a href=“/tag/skill/” class=“tag-link-779” title=“85个话题” style=“font-size: 14px;”>实用技巧</a>      <a href=“/tag/css/” class=“tag-link-29” title=“19个话题” style=“font-size: 14px;”>CSS</a>      <a href=“/tag/jquery/” class=“tag-link-56” title=“47个话题” style=“font-size: 14px;”>JQuery</a>      <a href=“/tag/web%e8%ae%be%e8%ae%a1/” class=“tag-link-109” title=“20个话题” style=“font-size: 14px;”>Web设计</a>      <a href=“/tag/wordpress%e4%b8%bb%e9%a2%98/” class=“tag-link-347” title=“89个话题” style=“font-size: 14px;”>WordPress主题</a>      <div class=“clear”></div>    </div> PS:html仅仅只是演示,具体是用 <div id=“tag_cloud_widget”>  </ div>包含a标签,也就是标签云 演示://demo.32xp.com/demo/wordpress/3dtag.html
WordPress ·

非插件wordpress点赞功能

非插件wordpress点赞功能,其实就是调用wordpress自定义字段,通过AJAX提交修改wordpress字段的数值,和阅读次数差不多。 上图是最近写一个模版的文章底部的样式,现在帖下百度来的点赞代码: 1、在模版functions.php适合位置插入 //文章点赞开始 add_action(‘wp_ajax_nopriv_specs_zan’, ‘specs_zan’); add_action(‘wp_ajax_specs_zan’, ‘specs_zan’); function specs_zan(){     global $wpdb,$post;     $id = $_POST[“um_id”];     $action = $_POST[“um_action”];     if ( $action == ‘ding’){         $specs_raters = get_post_meta($id,’specs_zan’,true);         $expire = time() + 99999999;         $domain = ($_SERVER[‘HTTP_HOST’] != ‘localhost’) ? $_SERVER[‘HTTP_HOST’] : false; // make cookies work with localhost         setcookie(‘specs_zan_’.$id,$id,$expire,’/’,$domain,false);         if (!$specs_raters || !is_numeric($specs_raters)) {             update_post_meta($id, ‘specs_zan’, 1);         }         else {             update_post_meta($id, ‘specs_zan’, ($specs_raters + 1));         }         echo get_post_meta($id,’specs_zan’,true);     }     die; } //文章点赞结束 文章模版页添加JS代码: $.fn.postLike = function() {     if ($(this).hasClass(‘done’)) {         return false;     } else {         $(this).addClass(‘done’);         $(this).children(‘.zan’).html(“已赞”);         var id = $(this).data(“id”),         action = $(this).data(‘action’),         rateHolder = $(this).children(‘.count’);         var ajax_data = {             action: “specs_zan”,             um_id: id,             um_action: action         };         $.post(“/wp-admin/admin-ajax.php”, ajax_data,         function(data) {             $(rateHolder).html(data);         });         return false;     } }; $(document).on(“click”, “.specsZan”,     function() {         $(this).postLike(); }); 在文章模版页需要添加点赞按钮的地方添加代码: <a hidefocus= true href=“javascript:;” data-action=“ding” data-id=“<?php the_ID(); ?>” class=“specsZan <?php if(isset($_COOKIE[‘specs_zan_’.$post->ID])) echo ‘done’;?>”> <i></i> <span class=“zan” style=“margin-right:5px;”><?php if(isset($_COOKIE[‘specs_zan_’.$post->ID])){ echo ‘已赞’;}else{echo ‘赞’;}?></span><span class=“count”><?php if( get_post_meta($post->ID,’specs_zan’,true) ){echo get_post_meta($post->ID,’specs_zan’,true);} else {echo ‘0’;}?></span></a></div> 这样,一个wordpress非插件的点赞功能就出来了!CSS样式自行添加。 如果嫌麻烦,可以搜索安装相关的点赞插件,相对来说,非插件自定义的自由会比较大吧  
WordPress ·

wordpress the_content内容替换

在wordpress the_content是输出文章内容,是带有标签的,比较明显的就是P标签了。 the_content 使用直接<?php the_content();?>,还有一个返回值  get_the_content,输出文章内容用 <?php echo get_the_content();?> 今天在做弹出图片效果的时候,auto highslide 插件没效果,用fancybox也没有效果,查看了下源码,fancybox需要添加几个参数,要对文章内容进行批量添加。直接用 <?php echo get_the_content();?> 发现全部都没有P标签。 用 <?php the_content();?>要在函数模版写一个修改的函数 function my_the_content_filter($content) {     $contents = preg_replace(‘~<img (.*?) src=(.*?)>~s’,'<center><img $1 src=“‘.get_bloginfo(“template_url“).’/img/loading.gif” data-original=$2></center>’,$content);     $pattern = “/<a(.*?)href=(‘|\”)([^>]*).(bmp|gif|jpeg|jpg|png)(‘|\”)(.*?)>(.*?)<\/a>/i”;     $replacement = ‘<a$1href=$2$3.$4$5 class=“fancybox” data-fancybox-group=“gallery” title=“‘.get_the_title().'” $6>$7</a>’;     $content = preg_replace($pattern, $replacement, $contents);       return $content;      }      add_filter( ‘the_content’, ‘my_the_content_filter’ ); 这边顺便对文章图片进行了一下居中,修改用正则。
WordPress ·

wordpress获取当前分类名称,ID,链接等

wordpress获取当前分类名称看似很多函数都可以解决,但是,实际上如果存在父分类并且父分类下有子分类且没有文章的话,很难获取到 百度了下,发现所说的都是没有办法解决这个问题的。 前提:wordpress父分类存在子分类,父分类下没有文章!获取当前分类标题可以或者只能用single_cat_title(),如果用get_the_category()或者其他一些函数的话,子分类可以正常获取,当打开的是父分类的时候,获取的标题是该父分类下最后一个子分类的标签。其他,如ID,别名等都是一样的! 这里用 single_cat_title()区别打开的两个分类,用 get_the_category()获取分类信息,主分类“乱折腾事”和子分类“wordpress”获取的数组都是一样的。子分类“wordpress”是主分类“乱折腾事”的最后一个子分类。如果需要获取主分类的标题等信息,显然 get_the_category不能用。标题可以用 single_cat_title函数。而链接,ID等不行,这里就需要对分类进行判断,判断是否是主分类! 判断其实也很简单,就判断 single_cat_title获取的标题和 get_the_category获取的标题是不是一样的。如果是一样的就说明是子分类,不一样的说明是父分类!然后分别对子分类父分类的不同情况设置不同的链接。 判断是主分类,ID就用category_parent,链接可以通过这个ID来获取,用get_category_link(ID)。 判断是子分类,就按常规的获取即可!  
WordPress ·

外站调用wordpress文章

在外站调用wordpress文章,百度了下,一般都是通过框架或者直接在根目录调用系统文件创建一个新的php文件来输出文章,其实,只要在模版下新建一个页面模版输出文件即可,而且输出文章的代码可以直接用主题的代码,即输出文章的函数来获取最新文章。 页面模版代码: <?php /* Template Name:外部调用文章模版 */ ?> <?php query_posts(‘showposts=5‘); ?> <ul> <?php while (have_posts()) : the_post(); ?> <li><a href=“<?php the_permalink() ?>”><?php the_title(); ?></a></li> <?php endwhile;?> </ul> 只需要简单的写上这段代码,在wordpress后台新建一个页面,选择这个模版文件即可! 新建一个页面,模版选择创建的页面模版文件,内容为空,直接发布! 外站调用直接用用file_get_contents函数即可!  
WordPress ·

解决wordpress4.2以上外观菜单无法打开显示选项

wordpress4.2,4.3在外观-菜单中的右上角“显示选项”无法下拉,这个选项大多可能都不会用到,如果需要设置外链,新窗口打开的话,就很需要用到了! 解决方案: 有人说修改程序文件的CSS中的display:none,我修改过了,无法解决。百度了一下,可以直接关闭旁边的“帮助”选项,就可以下拉! 在主题文件functions.php中<?php 和?>之间插入以下代码,关闭帮助选项! //显示选项无法打开,关闭帮助 function Uazoh_remove_help_tabs($old_help, $screen_id, $screen){     $screen->remove_help_tabs();     return $old_help; } add_filter(‘contextual_help’, ‘Uazoh_remove_help_tabs’, 10, 3 ); 保存,刷新,显示选项就可以下来了!  
WordPress ·

wordpress管理后台配色及工具栏隐藏

wordpress4.0+版本的后台管理配色默认是黑色的,个人看着不是很习惯,无意中看到,原来可以在用户中进行修改 这里不仅可以修改配色还可以控制显示隐藏因登录时候浏览器顶部的工具栏!
WordPress ·

wordrpess添加主题设置

wordpress添加主题设置选项 $themename = “32xp”;    //主题名称    $shortname = “32xp”;    //主题简写,必须是英文、数字、下划线组合    function mytheme_page (){             if ( count($_POST) > 0 && isset($_POST[‘mytheme_settings’]) ){                 $options = array (‘keywords’,’description’,’tongji’,’announcement’,’logourl’,’beian’);                 foreach ( $options as $opt ){                     delete_option ( ‘mytheme_’.$opt, $_POST[$opt] );                     add_option ( ‘mytheme_’.$opt, $_POST[$opt] );                    }             }             add_theme_page(__(’32XP主题设置’), __(’32xp主题设置’), ‘edit_themes’, basename(__FILE__), ‘mytheme_settings’);         }         function mytheme_settings(){?>       <style type=“text/css”>    ruby {    font-size:60px;    color:red;    font-family:微软雅黑;    }    .tab {    border:solid 1px;    border-color:#aaa;    width:960px;    margin:10px auto auto 10px;    text-align:left;    }    .hd {       height:25px;    width:100%;    border-bottom:solid 1px;    border-color:#aaa;    }    .hd ul {    padding:0;    margin:0;    height:26px;    overflow: hidden;    }    .hd .nomal {    font-size:14px;    height:26px;    line-height:25px;    float:left;    width:24%;    text-align:center;    border-right:solid 1px;    border-color:#aaa;    cursor:pointer;    list-style:none;    }    .hd .activeTab {    color:#2481C6;    font-weight: bold;       }    #content {    padding:20px 10px;    }                   .wrap{margin: 5px 15px 0 50px;width: 600px;}             fieldset{width:100%;border:1px solid #aaa;padding-bottom:10px;margin-top:5px;-webkit-box-shadow:rgba(0,0,0,.2) 0px 0px 5px;-moz-box-shadow:rgba(0,0,0,.2) 0px 0px 5px;box-shadow:rgba(0,0,0,.2) 0px 0px 5px;}             legend{margin-left:5px;padding:0 5px;color:#2481C6;cursor:pointer;}             textarea{width:100%;font-size:11px;border:1px solid #aaa;background:none;-webkit-box-shadow:rgba(0,0,0,.2) 1px 1px 2px inset;-moz-box-shadow:rgba(0,0,0,.2) 1px 1px 2px inset;box-shadow:rgba(0,0,0,.2) 1px 1px 2px inset;-webkit-transition:all .4s ease-out;-moz-transition:all .4s ease-out;}             textarea:focus{-webkit-box-shadow:rgba(0,0,0,.2) 0px 0px 8px;-moz-box-shadow:rgba(0,0,0,.2) 0px 0px 8px;box-shadow:rgba(0,0,0,.2) 0px 0px 8px;outline:none;}            </style>    <script src=“<?php bloginfo(‘template_url’);?>/js/jquery-1.6.4.min.js”></script>    <script type=“text/javascript”>    function tabClick(){    if($(this).hasClass(‘activeTab’))     return;    $(‘.hd ul li’).removeClass(‘activeTab’);    $(this).addClass(‘activeTab’);    var tabId = $(this).attr(‘tabId’);    $(‘#content > div’).hide();    $(‘#’ + tabId).show();    }    $(document).ready(function(){    $(‘.hd ul li’).click(tabClick);    })    </script>               <form method=“post” action=“”>       <div style=“height:40px;line-height:40px;font-size:26px;font-weight: bold;”>32XP主题设置</div>       <div class=“tab”>    <div class=“hd”>    <ul>    <li class=“nomal activeTab” tabId=“content1”>SEO设置</li>    <li class=“nomal”  tabId=“content2”>首页设置</li>    <li class=“nomal”  tabId=“content3”>幻灯片设置</li>    <li class=“nomal”  tabId=“content4”>其他设置</li>    </ul>    </div>    <div id=“content”>    <div id=“content1” style=“display:block;”>        <!–SEL设置–>              <fieldset>             <legend><strong>SEO设置</strong></legend>                 <table class=“form-table”>                     <tr><td>        <span>网站关键词(Meta Keywords),中间用半角逗号隔开。</span>                    <textarea name=“keywords” id=“keywords” rows=“1” cols=“70”><?php echo get_option(‘mytheme_keywords’); ?></textarea><br />                </td></tr>                <tr><td>            <span>网站描述(Meta Description),针对搜索引擎设置的网页描述。</span>                    <textarea name=“description” id=“description” rows=“3” cols=“70”><?php echo get_option(‘mytheme_description’); ?></textarea>                </td></tr>                 <tr><td>      <span>网站统计代码</span>                    <textarea name=“tongji” id=“tongji” rows=“3” cols=“70”><?php echo stripslashes(get_option(‘mytheme_tongji’)); ?></textarea>                </td></tr>                                <tr><td>      <span>网站备案号</span>                    <textarea name=“beian” id=“beian” rows=“1” cols=“70”><?php echo stripslashes(get_option(‘mytheme_beian’)); ?></textarea>                </td></tr>                            </table>        </fieldset>            <p class=“submit”>                 <input type=“submit” name=“Submit” class=“button-primary” value=“保存设置” />                 <input type=“hidden” name=“mytheme_settings” value=“save” style=“display:none;” />             </p>                <!–SEL设置–>               </div>    <div id=“content2” style=“display:none;”>    首页设置    </div>    <div id=“content3” style=“display:none;”>    幻灯片设置    </div>    <div id=“content4” style=“display:none;”>    其他设置    </div>    </div>    </div>         </form>    <?php }       add_action(‘admin_menu’, ‘mytheme_page’);    效果:
WordPress ·

wordpress添加自定义模块

wordpress在发布文章的时候添加自定义模块面板,方便填写自定义字段信息!   代码: $new_meta_boxes =    array(        “huanjing” => array(            “name” => “huanjing”,            “std” => “”,            “title” => “运行环境:”),             “zuozhe” => array(            “name” => “zuozhe”,            “std” => “”,            “title” => “软件作者:”),                “yanshi” => array(            “name” => “yanshi”,            “std” => “”,            “title” => “软件演示:”),        “down” => array(            “name” => “down”,            “std” => “”,            “title” => “软件下载:”),        “img” => array(            “name” => “img”,            “std” => “”,            “title” => “软件截图:”)    );    function new_meta_boxes() {        global $post, $new_meta_boxes;             foreach($new_meta_boxes as $meta_box) {            $meta_box_value = get_post_meta($post->ID, $meta_box[‘name’].’_value’, true);                 if($meta_box_value == “”)                $meta_box_value = $meta_box[‘std’];                 // 自定义字段标题            //  echo'<h4>’.$meta_box[‘title’].'</h4>’;                 // 自定义字段输入框            echo $meta_box[‘title’].'<input style=“width:600px” name=“‘.$meta_box[‘name’].’_value” value=’.$meta_box_value.’><br />’;        }             echo ‘<input type=“hidden” name=“newmetaboxes_noncename” id=“newmetaboxes_noncename” value=“‘.wp_create_nonce( plugin_basename(__FILE__) ).'” />’;    }    function create_meta_box() {        global $theme_name;             if ( function_exists(‘add_meta_box’) ) {            add_meta_box( ‘new-meta-boxes’, ‘软件信息’, ‘new_meta_boxes’, ‘post’, ‘normal’, ‘high’ );        }    }    function save_postdata( $post_id ) {        global $new_meta_boxes;             if ( !wp_verify_nonce( $_POST[‘newmetaboxes_noncename’], plugin_basename(__FILE__) ))            return;             if ( !current_user_can( ‘edit_posts’, $post_id ))            return;             foreach($new_meta_boxes as $meta_box) {            $data = $_POST[$meta_box[‘name’].’_value’];                 if(get_post_meta($post_id, $meta_box[‘name’].’_value’) == “”)                add_post_meta($post_id, $meta_box[‘name’].’_value’, $data, true);            elseif($data != get_post_meta($post_id, $meta_box[‘name’].’_value’, true))                update_post_meta($post_id, $meta_box[‘name’].’_value’, $data);            elseif($data == “”)                delete_post_meta($post_id, $meta_box[‘name’].’_value’, get_post_meta($post_id, $meta_box[‘name’].’_value’, true));        }    }    add_action(‘admin_menu’, ‘create_meta_box’);    add_action(‘save_post’, ‘save_postdata’);   插入到functions.php文件的适当位置!
WordPress ·
Zero零分
站龄14年资深站长
一个喜欢折腾,却又折腾不出像样东西的,不会PHP的PHP程序员!
458
文章
28
评论
27
分类
810
标签
7
友链
onlinelovesky 317355746 122551965@qq.com

百度广告