上次说到去除一些不必需的 class 和 ID, 从上图看出,这些 domain name 似乎也是不必须的,如果像下图: 这样会不会更好呢,下面的代码可以实现这个效果。 add_filter('walker_nav_menu_start_el' , 'yao_walker_nav_menu_start_el' , 10 , 2); function yao_walker_nav_menu_start_el($item_output, $item){ //print_r($item); $home_url = home_url(); $site_url = site_url(); preg_match("/^(http:\/\/)?([^\/]+)/i",site_url(), $matches); $domain = $matches[0]; if( $domain == $home_url){ $replace = ''; }else{ $replace = str_replace($matches[0], '', site_url()); } $item->url = str_replace($home_url,$replace,$item->url); $attributes = ! empty( $item->attr_title ) [...]
wordpress 默认的菜单会产生很多 id 和 class 在代码里,打多时候,这些都是不需要的。 通过下面2个滤镜,可以去除那些我们不需要的 class 和 ID add_filter('nav_menu_css_class' , 'special_nav_class' , 10 , 2); function special_nav_class($classes, $item){ $current_and_home = array("current-menu-item", "menu-item-home", 'last'); $classes = array_intersect($item->classes,$current_and_home); //保留有需要的 class return $classes; } add_filter('nav_menu_item_id' , 'special_nav_item_id' , 10 , 2); function special_nav_item_id($item_id, $item){ $item_id = ""; //去除 id return $item_id; } 清理之后如: 不过尚有 class=”" [...]
http://demo.com/drupal710/sites/default/files/news/4852401.jpg 上传到drupal7 的媒体或文件通常是这样一个地址。 http://demo.com/drupal710 我们可以通过 global $base_url 来获得。 sites/default/files 这一段,在drupal6 里可以通过 file_directory_path() 来获得的,可是在drupal7里被取消了,但是可以在 template.php 里重构这个函数,如下: function file_directory_path($scheme = 'public') { return file_stream_wrapper_get_instance_by_scheme($scheme)->getDirectoryPath(); } 下面的代码就是在 node 页面下获取自定义图片字段里上传的一个或过个图片。 可以建立一个block,运行此段代码。这样你可以任意定于这个block 的位置了,相比内置的位置选择,要灵活的多。 if (arg(0) == 'node' && is_numeric(arg(1))) $nodeid = arg(1); if($nodeid){ $obj = node_load($nodeid); $items = field_get_items('node', $obj, 'field_image'); //echo count($items); if($items){ global $base_url; $a=0; while($a<count($items)) { echo [...]
当Wordpress在一个多用户的贡献者列表管理页面后,他可以看到不仅是他的文章,但也从其他捐助者的文章。即使他不能编辑其他职位,这仍可能是一个问题,如果有很多文章已经和他有搜索一页一页地找到他的文章。如何只显示他自己的文章?这段代码会显示如何做到这一点。 function mypo_parse_query_useronly( $wp_query ) { if ( strpos( $_SERVER[ 'REQUEST_URI' ], '/wp-admin/edit.php' ) !== false ) { if ( !current_user_can( 'level_10' ) ) { global $current_user; $wp_query->set( 'author', $current_user->id ); } } } add_filter('parse_query', 'mypo_parse_query_useronly' ); 放在主题的 functions.php 里。
首先到 blog/wp-admin/nav-menus.php 页面。勾选上 链接目标。 然后在下面的自定义菜单区域,点开单个菜单单元 搞定。 Happy? Rel 属性设置以此类推。
1. 在 info 文件里添加一个新REGION: 2. 在 page.tpl.php 找块地方来安置这个新的 REGION : 3. 在结构里添加一个新的 内容类型 sliders 4. 设置这个内容模型的字段 5. 接下来就在这个内容模型里加两篇文章吧 6. OK 接着到 结构 区块 里新建一个区块,区块标题可以为空。 在区块内容里我使用 php code 的文本格式,加上下面的代码 从数据库的相关表里取出需要的字段值,这儿涉及的表还挺多。 区域设置 就选择我们之前设置的 slideshow,ok 保存,看看,刚刚加的两篇文章已经在前台页面显示了,内容都有了,附上CSS 和 JS 就OK 拉。 7. 到 主题文件夹里德 template.php 里德 hook_preprocess_html() 里加上 if(theme_get_setting('slideshow')=='yes'){ drupal_add_css(path_to_theme() . '/css/pascal/pascal.css'); drupal_add_js(base_path().'sites/all/libraries/nivo-slider/jquery.nivo.slider.pack.js'); drupal_add_js("jQuery(window).load(function() {jQuery('#slider').nivoSlider();});",'inline'); } OK拉,大公高成。当然亲,文件的位置不要搞错哦。
Javascript 探测客户设备的操作系统 var deviceAgent = navigator.userAgent.toLowerCase(); var isAndroid = deviceAgent.indexOf("android") > -1; //&& ua.indexOf("mobile"); var iOS = deviceAgent.match(/(iphone|ipod|ipad)/); if (iOS) { document.write('iOS'); } else if(isAndroid) { document.write('android'); }else { document.write(navigator.platform); } php 探测客户设备的操作系统 //Detect special conditions devices $iPod = stripos($_SERVER['HTTP_USER_AGENT'],"iPod"); $iPhone = stripos($_SERVER['HTTP_USER_AGENT'],"iPhone"); $iPad = stripos($_SERVER['HTTP_USER_AGENT'],"iPad"); if(stripos($_SERVER['HTTP_USER_AGENT'],"Android") && stripos($_SERVER['HTTP_USER_AGENT'],"mobile")){ $Android = true; }else [...]
实际上这是个插件叫 Disable Updates,但是想就这点代码直接写在主题的功能文件里倒来得更加方便:
The Feed templates are located in the /wp-includes/feed-{type}.php files and include formats for rdf, rss, rss2 and atom. 这儿是一些默认的 rss 模板,定制自己的模板时可以参照。
版本是 3.2.1 在原本的服务器上运行无错,移植到新的服务器就有这个问题,大概就是服务器配置的缘故了。 官方上也相关的文章。http://wordpress.org/support/topic/25-imagemedia-uploader-problems 是apache Mod_Security 的缘故。如果你能够修改你服务器的httpd.conf文件的话,删除里面关于mod_security部分就可以了。不过多数wordpress玩家是没有权限修改这个文件的,那就只好修改.htaccess文件了。在.htaccess文件里面加上一行: <IfModule mod_security.c> SecFilterEngine Off SecFilterScanPOST Off </IfModule> 这样就可以关闭 Mod_Security。
Posted on 5, 一











