如何在wordpress主题中添加设置页面
1、创建所需的文件 在进行主题定制前,应该首先创建一个可供自定义的“设置选项页面”。
创建设置选项页的代码需要放置在主题目录下的functions.php文件中。
如果我们的主题名为“OptionPage”,那么functions.php文件的路径为:\wp-content\themes\OptionPage\functions.phph。
我们不需要让wordpress手动加载它,在执行时wordpress会自动加载。
2、建立设置选项页 首先第一步需要在后台建立一个空白页面供我们使用。
我们通过add_aaction来实现这一步。
Actions可以在wordpress执行时的特定时间被响应,例如,当在控制面板创建菜单时,admin_menu就会被响应执行。
因此,可以利用这些来实现我们所需的功能。
这是我们创建选项页的最基本的功能。
// 设置选项页 function themeoptions_admin_menu() {// 在控制面板的侧边栏添加设置选项页链接 add_theme_page("主题设置", "主题选项", 'edit_themes', basename(__FILE__), 'themeoptions_page'); } function themeoptions_page() {// 设置选项页面的主要功能 } add_action('admin_menu', 'themeoptions_admin_menu');?> themeoptions_admin_menu() 是在控制面板的侧边栏中添加一个链接,指向我们创建的选项页:themeoptions_page。
add_theme_page() 的参数为:页面标题:主题设置 菜单标题:主题选项(p.s.为了区分显示,页面与菜单标题我做了不同我命名) 作用功能:edit_themes;Handle(句柄):当前文件;执行的函数:themeoptions_page;现在后台控制面板侧边栏的处就多了一个“主题设置”的菜单,但是现在还是空白的,我们后面要实现的定制内容就在这个空白页面上创建。
3、添加选项和字段 现在我们就可以在刚创建的空白页面上添加我们的选项和字段。
这个页面你可以根据自己的需要进行样式风格化,但在本教程中我们将使用wordpress默认的类,这样可以节省我们的时间并且看起来更加原生。
页面内容的代码需包含在 themeoptions_page() 函数内。
首先,我们先添加一个 class="wrap" 的 div 容器;然后,在头部添加一个默认图标作为作为页面标题;最后是设计表单。
function themeoptions_page() {// here's the main function that will generate our options page?> 主题设置 } 在表单中,首先我们需要添加一个隐藏的值,通过它来检查更新是否已经提交。
然后添加一个提交按钮,这里我也使用wordpress默认的按钮样式。
现在的效果为:现在我们已经创建了设置选项页的基本结构,下面我们开始根据之前制定的内容进行完善:首先,我们要允许主题使用者可以更改颜色方案。
对于这一点,我们需要一个下拉列表提供可用的配色方案。
其次,增加两个广告位的内容,我们需要增加两个文本框来输入图片的URL及广告链接URL。
最后,用户可选择是否显示搜索框。
这一点,我们通过添加复选框来实现。
代码如下:function themeoptions_page() {// 这是产生主题选项页面的主要功能?> 主题设置 主题配色方案 >灰色 >浅蓝 >粉红 图片广告位(1) "/> 广告图片 "/> 广告链接 图片广告位(2) "/> 广告图片 "/> 广告链接 /> 显示搜索框 } 到这里选项页面的内容就已经基本构建完毕了。
4、数据库更新 到目前为止,我们已经创建了一个主题选项页面,下一步要做的就是如何将数据透过POST提交的wordpress数据库。
要做到这一点,需要创建一个新的功能函数themeoptions_update(),这个函数将会被themeoptions_page()调用,所以将下面的代码添加到themeoptions_page()函数的最上面。
if ( $_POST['update_themeoptions'] == 'true' ) { themeoptions_update(); } 下一步是增加一个更新函数。
function themeoptions_update() { // 数据更新验证 update_option('mytheme_colour', $_POST['colour']); update_option('mytheme_ad1image', $_POST['ad1image']); update_option('mytheme_ad1url', $_POST['ad1url']); update_option('mytheme_ad2image', $_POST['ad2image']); update_option('mytheme_ad2url', $_POST['ad2url']); if ($_POST['display_search']=='on') { $display = 'checked'; } else { $display = ''; } update_option('mytheme_display_search', $display); }5、调用选项定制主题5.1 更改配色方案 我们主题的默认样式文件为 style.css,如果使用其他的配色方案,我们需要建立相应的样式文件,例如本例中的 blue.css、pink.css,style.css 为默认的灰色。
为了切换配色方案样式表,需要在主题 header 中加入以下代码:/default.css" type="text/css">/.css" type="text/css">5.2 增加广告位图片 在你想要放置广告的地方添加以下代码:">" height="125" width="125" />">" height="125" width="125" />5.3 是否显示搜索框 在需要放置搜索框的地方添加以下代码,当用户选择显示搜索框时会显示,否则则不显示: 搜索框 "> " /> 6、总结 本文翻译自NET TUTS+文章《How to Integrate an Options Page into your WordPress Theme》,版权归原文作者所有。
为了更容易地学习添加主题选项页的过程,我省略了原文中部分内容,有兴趣的话可以参考原文。
翻译水平有限,...
wordpress的插件Custom Login 怎么设置
资源在 插件资源集合 有各种你可能需要的资源,包括外站关于写插件的文章,以及特定主题的文章。
学习一个叫 Hello Dolly 的插件“范本”可以领你入门。
如果你的插件已经写完了,并自以为写的不错,查看 插件提交以及推广。
新建一个插件这个部分告诉你怎么把开发插件的理想变为现实。
名称,文件和地方插件名你得先想一个名字,并且努力让它独一无二。
在 Plugins 或者其他宝贝地方——Google或者百度先验证一下这个名字到底是不是独一无二的。
另外你的名字得让别人明白你的插件是干什么的。
插件文件下一步是创建一个PHP文件。
按照原文奇怪的逻辑,你得先想好名字。
这个名字还得是从插件名衍生过来的(其实是为你自己辨认的)。
举个例子吧,比如说你的插件名字叫 "Fabulous Functionality",你的PHP名字可能是 fabfunc.php。
另外不要用汉语拼音(这也是我加的),还要避免重名。
人民群众会把你的插件安装到一个你也知道的叫wp-content/plugins/的地方,如果名字冲突岂不要悲剧了。
你也可以选择把插件分割成几个文件。
显而易见一个php文件是必需的,同时还需要图片、CSS、JavaScript、语言(当然也可以没有)。
如果有很多文件,命名一个php和一个文件夹,例如 fabfunc and fabfunc.php。
把你所有插件文件放到文件夹里,然后让你的用户相信只要把你的整个压缩包解压到 wp-content/plugins/就能正常使用你的劳动成果。
在本文的其余部分,“插件的PHP文件”是指主要插件的PHP文件,无论是在的wp-content/plugins/或子目录。
Readme文件如果你想将你的插件发布到http://wordpress.org/extend/plugins/, 你必须在插件包中建立一个标准格式readme.txt文件. 文件格式参见http://wordpress.org/extend/plugins/about/readme.txt.主页最好为插件建立一个主页,以介绍插件的功能、安装方法、使用说明、适用的WordPress版本、插件更新信息等。
文件Headers现在开始吧,首先让我们从向PHP主文件中加入一些信息标准插件信息插件的主文件顶部必须包括一个标准插件信息头。
WordPress通过标准信息头识别插件的存在,并把她加入到控制面板的插件管理页面,这样插件才能激活,载入插件,并运行里面的函数;如果没有信息头,插件将无法激活和使用。
标准信息插件头的格式为:标准信息头至少要包括插件名称,这样WordPress才能识别你的插件。
其他信息将显示在控制面板插件管理页面中。
标准插件信息对各行顺序没有要求。
这样的升级机制能够正确地读出你的插件版本,建议你选择一个格式的版本号,不同版本之间,并坚持下去。
例如,x.x中或x.x.x或xx.xx.xxx注意:文件必须是 UTF-8 格式!版权信息通常我们还要在标准信息头中加入插件的许可证信息。
大多数插件使用GPL或GPLCompatibleLicenses许可。
如果使用GPL许可,要求插件中包含以下信息:开始编写插件现在是时候让你的插件能干些什么了。
这部分内容包括插件开发的一般思路,而且介绍了开发插件需要做哪些工作。
WordPress插件钩子许多WordPress插件通过连接一个或多个WordPress插件钩子来完成他们的功能。
插件钩子的运行机理是,当WordPress运行到不同阶段,WordPress会检查当前阶段是否注册了插件函数,如果是,那么函数将被执行。
通过执行插件函数改变了WordPress的默认功能。
例如,在WordPress将日志标题和post发送到浏览器前,会检查是否有插件函数注册了名为“the_title”的“filter”钩子。
如果是,标题文本将会传送到注册函数中,注册函数返回值将会传送到浏览器。
所以,如果要在日志标题中加入一些信息,可以通过这种方式实现。
另一个例子是名为“wp_footer”的“action”钩子。
在WordPress的HTML页脚创建之前,会检查是否有插件注册了名为“wp_footer”的“action”钩子,如果是依次执行她们。
在Plugin API了解更多如何注册“filter”和“action”类型的钩子函数,及WordPress提供了那些插件钩子。
如果你发现WordPress没有提供自己想要的钩子,你可以建议WordPress加入这个钩子,很多建议WordPress都会采纳。
具体方法参考Reporting Bugs。
模版标签另一个通过插件加入新功能的方法是建立自定义的模版标签Template Tags。
如果有人想用你的插件,可以在他们的主题中添加这些标签,边栏,文章内容段,或者任意的只要是适合这插件的地方。
例如,一个给文章添加地理位置的插件可能定义了一个模板标签函数geotag_list_states()放在边栏上,这里列表了所有在文章中关联的州的名称,并且还带有插件提供的到这些州的文档页的链接。
定义一个自定义模板标签,仅需要写一个PHP函数,并且在你插件主页或者插件的主PHP文件中声明一下。
声明函数的时候,为这个函数提供一个示例来明确如果想要应用这个函数需要加主题中加些什么文件是个相当棒的主意。
保存插件数据到数据库大多数WordPress插件需要站点的所有者或者是博客的用户输入信息,然后在对话过程中保存起来,以便过滤器函数(filter)、动作函数(action)或者模板函数(Template)使用。
这些信息必须保存在WordPress的数据库中,以便下次使用。
这里...
wordpress后台无法编辑主题文件怎么办
add_action( 'pre_get_posts' ,'wpjam_exclude_pages' );function wpjam_exclude_pages( $query ) {if( !is_admin() )return $query;global $pagenow;if( 'edit.php' == $pagenow && ( get_query_var('post_type') && 'page' == get_query_var('post_type') ) )$query->set( 'post__not_in', array(23,28,30) ); // 排除掉的页面IDreturn $query;
我做了一个wordpress的网站!我按照教程来弄自定义结构!/%post
如果你确定你服务器是Linux+Apache+MySQL+php的,请检查目录下是否有.haccess文件。
如果没请设置目录755,并且果断的把那个感叹号删除,写为/%post_id%.html即可。
如果你不确定你服务器是否为Linux+Apache+MySQL+php,那就当我没说。
-----------------你的空间是Windows+IIS+MySQL+php的其实也可以实现,只是有点麻烦,百度或Google一下“windows环境 wordpress伪静态”你就会有收获
如何在Windows系统上安装WordPress本地测试
使用 Dreamweaver 这样的可视化的 IDE 工具进行编程的最大的一个好处是它的代码提示功能,只要输入几个字符,IDE 工具就会智能的给出一系列可选的函数或者变量让你输入。
代码提示功能的好处是非常明显的,比如你对某个函数记不清楚,就可以通过代码提示功能快速输入,而不用去搜索和查资料,即使非常清楚,也可以通过代码提示功能快速输入而无需输入每个字符,这样的对编程效率提高是非常明显的。
Dreamweaver CS5 支持 WordPress 代码提示我们知道 Dreamweaver 代码提示功能支持 HTML,PHP,JavaScript 这些动态语言,而最新发布的 Dreamweaver CS5 则更进一步,支持 WordPress,Drupal,Joomla 这些开源程序的私有函数的代码提示。
这样使用 Dreamweaver CS5 来开发 WordPress 插件和主题,只要输入 WordPress 内置函数的前几个字符,就会显示整个函数,再也不用辛苦记住函数名称了。
如何在 Dreamweaver CS5 中启用 WordPress 代码提示功能下面就讲解下如何在 Dreamweaver CS5 中启用 WordPress 代码提示功能:将本地的测试站点添加到 Dreamweaver CS5首先要在本地安装好 WordPress 测试网站,如果是 Windows 系统,可以查看这篇教程:如何在 Windows 系统上安装 WordPress 本地测试,并保证网站已经能在本地正常浏览。
点击 Dreamweaver CS5 菜单中的”Site–>New Site”,如下图建立新站点:在同一对话框中切换到”Servers”界面,点击”+”号添加测试服务器。
上面我们说到 Dreamweaver CS5 中启用 WordPress 代码提示功能需要一个测试服务器,我们已经预先在电脑上安装例如 XAMPP 之类的服务器,并把一些信息输入上图。
在同一对话框中切换到”Advanced”界面,”Server Model”选择”PHP MySQL”,保存。
返回到”Servers”设置界面,选中”Testing”,保存,退出此对话框,完成站点设置了。
开启 Dreamweaver CS5 中 WordPress 代码提示功能点击 Dreamweaver 菜单中的 ”Site–>Site-Specific Code Hints”,以便让站点与 WordPress关联,如上图,一般 Dreamweaver 会自动选中 WordPress,如果没有,请手工选择一下,保存退出些对话框。
好了,一切设置已完成,下面是见证奇迹的时刻,打开一个 WordPress主题中的文件,例如 index.php,如下图:输入WordPress 某个函数的前几个字符,例如 ”the_”,按 Ctrl+H,就会弹出 WordPress 里以”the_”开头的所有函数供你选择,是不是很方便呢?
wordpress标签云怎么设置
实现Wordpress彩色标签云在相应主题的functions.php加入下面的代码,位置刻意在?>;前面:function colorCloud($text) {$text = preg_replace_callback('||i','colorCloudCallback', $text);return $text;}function colorCloudCallback($matches) {$text = $matches[1];$color = dechex(rand(0,16777215));$pattern = '/style=(\'|\”)(.*)(\'|\”)/i';$text = preg_replace($pattern, "style=\"color:#{$color};$2;\"", $text);return "";}add_filter('wp_tag_cloud', 'colorCloud', 1);修改Wordpress彩色标签字体大小,排序,显示数量等。
文件位置在wp-includes下的category-template.php 文件中,搜索wp_tag_cloud,找到相关参数进行修改:function wp_tag_cloud( $args = '' ) {$defaults = array('smallest' => 12, 'largest' => 16, 'unit' => 'pt', 'number' => 50,'format' => 'flat', 'separator' => "\n", 'orderby' => 'count', 'order' => 'DESC','exclude' => '', 'include' => '', 'link' => 'view', 'taxonomy' => 'post_tag', 'echo' => true);$args = wp_parse_args( $args, $defaults );$tags = get_terms( $args['taxonomy'], array_merge( $args, array( 'orderby' => 'count', 'order' => 'DESC' ) ) );注:smallest表示标签的最小字号largest表示最大字号unit=px表示字体使用像素单位number=0表示显示所有标签,如果为40,表示显示40个orderby=count表示按照标签所关联的文章数来排列order=DESC表示降序排序(ASC表示升序排序,DESC表示降序排序)Wordpress彩色标签云小工具调用。
保存之后回到首页就可以看到彩色标签云的效果了。
Wordpress如何在profile页面添加多余的选项呢?
/* Plugin Name: Coolwp ALP plugin for user profile Plugin URI: Description:This is a child plugin for ALP(Access Level Pro),more info:!Version: 1.0.0 Author: Suifengtec Author URI: Text Domain: cwpalp License: */ function coolwp_alp_for_user_profile_page( $user ) { if(function_exists('sl_get_subscription_id')){ $user_ID = get_current_user_id(); //sl_is_active()用户是否激活 //sl_is_paid_user()是否是已支付用户 if(sl_is_active( $user_ID ) && sl_is_paid_user($user_ID)){ $cwp_alp_has_actived ='是'; //获取某用户的订阅等级ID $cwp_alp_user_level = sl_get_subscription_id( $user_ID ); //获取该用户订阅等级信息 $cwp_get_level_info=sl_get_subscription_details( absint($cwp_alp_user_level )); //该用户订阅等级名称 $cwp_alp_user_level_name =$cwp_get_level_info->name; //该用户订阅等级描述 $cwp_alp_user_level_des =$cwp_get_level_info->description ; //该用户订阅等级周期的数字部分 $cwp_alp_user_level_duration_num =$cwp_get_level_info->duration ; //该用户订阅等级周期的单位部分 $cwp_alp_user_level_duration_unit =$cwp_get_level_info->duration_unit; //该用户订阅等级是否激活 $cwp_alp_user_level_status =$cwp_get_level_info->status; $cwp_alp_user_access_level=sl_get_subscription_access_level($cwp_alp_user_level); $cwp_alp_user_expiration = get_user_meta( $user_ID, 'sl_expiration', true ); $cwp_alp_user_level_output= __('订阅等级:', 'cwpalp').' '.$cwp_alp_user_level_des.' ,'.__('权限等级为:', 'cwpalp').' '.$cwp_alp_user_access_level.'; '.__('时长:', 'cwpalp').':'.$cwp_alp_user_level_duration_num.__($cwp_alp_user_level_duration_unit,'cwpalp').' . '; $tr_css='alp-ok'; }else{ $cwp_alp_has_actived ='否'; $cwp_alp_user_level_name ='未激活或者已过期!'; $cwp_alp_user_expiration=$cwp_alp_user_level_name; $cwp_alp_user_level_output=$cwp_alp_user_level_name; $tr_css='alp-error'; } ?>"> "> "> "> } } function coolwp_alp_for_user_profile_page_save( $user_id ) { if ( !current_user_can( 'edit_user', $user_id ) ) return FALSE; update_usermeta( $user_id, 'address', $_POST['address'] ); } add_action( 'show_user_profile', 'coolwp_alp_for_user_profile_page' ); add_action( 'edit_user_profile', 'coolwp_alp_for_user_profile_page' );/*add_action( 'personal_options_update', 'coolwp_alp_for_user_profile_page_save' ); add_action( 'edit_user_profile_update', 'coolwp_alp_for_user_profile_page_save' );*/最后一个函数,和最后两个被我注释掉的是用于保存的,这是我的一个WP插件的附加组件,因为你的电脑上不可能装这个插件,所以,在实际测试的时候,将其中与订阅有关的变量都删了吧。
实际效果截图 没问题的吧,如果你实在想测试,就将上面的变量替换为字符串吧。
主要思路就是:一个显示函数,一个保存函数,然后两个HOOKs
如何简单地给WordPress页面或文章设置访问密码
意思:前台页面向php页面提交的表单数据,用来判断给程序传值的方式有没有post传值。
1、PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。
语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。
PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。
它可以比CGI或者Perl更快速地执行动态网页。
用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。
2、开发工具Zend Studio:商业版,Zend官方出品,基于eclipseEclipse with PDT:免费Coda:商业版,针对Mac用户NetBeans:免费,功能强大PHP Storm:商业版Aptana Studio:免费PhpEd:商业版Komodo IDE/Edit:IDE为商业版,Edit可免费使用Adobe Dreamweaver:商业版
转载请注明出处51数据库 » wordpress edit_post_