如何在wordpress主题中添加设置页面

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在wordpress主题中添加设置页面相关的知识,希望对你有一定的参考价值。

参考技术A

  将自己设计的题发布或是销售是一件很棒的事情,但并不是每一个主题使用者都有很熟练的html/CSS技巧。但是如果在主题中整合一个设置选项页面,就可以使那些完全不懂代码的用户能够很容易地根据他们的喜好来修改主题。下面我将告诉大家如何从零开始做一个最简单的主题选项页(下图为最终效果)。


  我们的最终目的是什么?


  在开始之前,要先了解我们的最终目的是什么?我们主题可以自行定制哪些内容?这些是需要你在设计主题前就应该考虑好的。


  每个主题都可以有很多的可编辑元素,本例中我将通过实现下面这三个方面的定制来说明如何给主题增加设置选项页,你应该要有自己更好的想法。


  改变主题配色方案;

  增加两个广告位内容;

  自定是否显示搜索框;

  


  1、创建所需的文件


  在进行主题定制前,应该首先创建一个可供自定义的“设置选项页面”。创建设置选项页的代码需要放置在主题目录下的functions.php文件中。如果我们的模板名为“OptionPage”,那么functions文件的路径为:wp-contentthemesOptionPagefunctions.php。


  我们不需要让wordpress手动加载它,在执行时wordpress会自动加载。


  2、建立设置选项页


  首先第一步需要在后台建立一个空白页面供我们使用。我们通过add_aaction来实现这一步。Actions可以在wordpress执行时的特定时间被响应,例如,当在控制面板创建菜单时,admin_menu就会被响应执行。因此,可以利用这些来实现我们所需的功能。这是我们创建选项页的最基本的功能。


  

<?php
  // 设置选项页
  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容器;然后,在头部添加一个默认图标作为作为页面标题;最后是设计表单。


  <div class=“wrap”>
  <div id=“icon-themes” class=“icon32″><br /></div>
  <h2>主题设置</h2>
  <form method=“POST” action=“”>
  <input type=“hidden” name=“update_themeoptions” value=“true” />
  <p><input type=“submit” name=“submit” id=“submit” class=“button button-primary” value=“保存更改”></p>
  </form>
  </div>

  在表单中,首先我们需要添加一个隐藏的值,通过它来检查更新是否已经提交。然后添加一个提交按钮,这里我也使用wordpress默认的按钮样式。现在的效果为:


  现在我们已经创建了设置选项页的基本结构,下面我们开始根据之前制定的内容进行完善:


  首先,我们要允许主题使用者可以更改颜色方案。对于这一点,我们需要一个下拉列表提供可用的配色方案。

  其次,增加两个广告位的内容,我们需要增加两个文本框来输入图片的URL及广告链接URL。

  最后,用户可选择是否显示搜索框。这一点,我们通过添加复选框来实现。

  代码如下:


  

function themeoptions_page()
  
  // 这是产生主题选项页面的主要功能
  ?>
  <div>
  <div id=“icon-themes”><br /></div>
  <h2>主题设置</h2>
  <form method=“POST” action=“”>
  <input type=“hidden” name=“update_themeoptions” value=“true” />
  <h4>主题配色方案</h4>
  <select name =“colour”>
  <?php $colour = get_option(‘mytheme_colour’); ?>
  <option value=“gray” <?php if ($colour==’gray’)  echo ‘selected’;  ?> >灰色</option>
  <option value=“blue” <?php if ($colour==’blue’)  echo ‘selected’;  ?>>浅蓝</option>
  <option value=“pink” <?php if ($colour==’pink’)  echo ‘selected’;  ?>>粉红</option>
  </select>
  <h4>图片广告位(1)</h4>
  <p><input type=“text” name=“ad1image” id=“ad1image” size=“32” value=“<?php echo get_option(‘mytheme_ad1image’); ?>”/> 广告图片</p>
  <p><input type=“text” name=“ad1url” id=“ad1url” size=“32” value=“<?php echo get_option(‘mytheme_ad1url’); ?>”/> 广告链接</p>
  <h4>图片广告位(2)</h4>
  <p><input type=“text” name=“ad2image” id=“ad2image” size=“32” value=“<?php echo get_option(‘mytheme_ad2image’); ?>”/> 广告图片</p>
  <p><input type=“text” name=“ad2url” id=“ad2url” size=“32” value=“<?php echo get_option(‘mytheme_ad2url’); ?>”/> 广告链接</p>
  <h4><input type=“checkbox” name=“display_search” id=“display_search” <?php echo get_option(‘mytheme_display_search’); ?> /> 显示搜索框</h4><p><input type=“submit” name=“bcn_admin_options” value=“更新数据”/></p>
  </form>
  </div>
  <?php
  

  到这里选项页面的内容就已经基本构建完毕了。


  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、调用选项定制主题


  我们主题的默认样式文件为style.css,如果使用其他的配色方案,我们需要建立相应的样式文件,例如本例中的blue.css、pink.css,style.css为默认的灰色。


  为了切换配色方案样式表,需要在主题header中加入以下代码:


  

<link rel=“stylesheet” href=“<?php bloginfo(‘stylesheet_directory’); ?>/default.css” type=“text/css”>
  <link rel=“stylesheet” href=“<?php bloginfo(‘stylesheet_directory’); ?>/<?php echo get_option(‘mytheme_colour’); ?>.css” type=“text/css”>
  增加广告位图片—在你想要放置广告的地方添加以下代码:
  <a href=“<?php echo get_option(‘mytheme_ad1url’); ?>”><img src=“<?php echo get_option(‘mytheme_ad1image’); ?>” height=“125” width=“125” /></a>
  <a href=“<?php echo get_option(‘mytheme_ad2url’); ?>”><img src=“<?php echo get_option(‘mytheme_ad2image’); ?>” height=“125” width=“125” /></a>
  是否显示搜索框—在需要放置搜索框的地方添加以下代码,当用户选择显示搜索框时会显示,否则则不显示:
  <?php if ( get_option(‘mytheme_display_search’) == ‘checked’)  ?>
  <h3>搜索框</h3>
  <form method=“get” id=“searchform” action=“<?php echo esc_url( home_url( ‘/’ ) ); ?>”>
  <input type=“text” name=“s” id=“s” placeholder=“<?php esc_attr_e( ‘Search’, ’85Ryan’ ); ?>” />
  <input type=“submit” name=“submit” id=“searchsubmit” value=“搜索” />
  </form>
  <?php  ?>

本回答被提问者和网友采纳

如何在wordpress主题中注册html页面的Css

【中文标题】如何在wordpress主题中注册html页面的Css【英文标题】:How to register Css of html page in wordpress theme 【发布时间】:2016-12-15 03:08:17 【问题描述】:

我是 wordpress 开发的新手。我试图将响应式 html 页面转换为 wordpress 主题,但 html 页面的 CSS 在 wordpress 主题中无法正常工作。请看下面的图片:

HTML 页眉

wordpress 主题标题

我无法弄清楚为什么 wordpress 主题标题与 html 页面标题不同,而 Style.css 相同。 请向我建议如何解决这个问题。

【问题讨论】:

在你的 header.php 中有这样的东西吗? 是的,我已经通过上述方法包含了style.css 【参考方案1】:

这里是调用WordPress目录图片,样式或帖子等的所有过程,请检查它。

 default CSS call 
<link href="<?php bloginfo('stylesheet_url'); ?>" rel="stylesheet" type="text/css" media="screen" />

 <a href="php?page_id=318"><h6 class="add-to-cart"></h6></a>-------page call

  <?php get_header(); ?>---------------------------------------header show

  <?php get_sidebar(); ?>--------------------------------------to call slider.php

  <?php dynamic_sidebar( 'sidebar name  include ' ); ?>-----to show slider wigdts

  <?php dynamic_sidebar('New 1'); ?>---------------------------sidebar 

  <?php get_footer(); ?>---------------------------------------footer show

  <?php get_template_directory(); ?> --------------------------dirctory path

  <?php echo get_template_directory_uri(); ?>------------------script path

  <?php the_title(''); ?>--------------------------------------title show

  <?php the_excerpt(''); ?>------------------------------------content show 

  <p><?php echo substr(get_the_excerpt(), 0,170); ?></p>------content LIMIT 

  <?php get_search_form(); ?>-----search 

  <?php the_permalink(''); ?>----------------------------------post ka link(like click on title of post and it show inside the post)

  <?php bloginfo('template_url');?>/images---------------------image path 



  <link href="<?php bloginfo('template_url'); ?>/css/global-style.css" type="text/css" rel="stylesheet">-- css path in header file

  <?php echo the_post_thumbnail(''); ?>------------------------image show

还有很多,但是列表太长了,它会帮助你把静态的html变成动态的

【讨论】:

我已经添加了 标题,但我仍然面临这个问题 进入你的header.php,一一更改样式表的调用方法 代替这段代码 1 2 3 先生,我已经在 header.php 上添加了这个以包含 style.css 但同样的问题出现了 再次阅读评论,你能告诉我你的网站链接吗?您在 single.php 或 page.php 中编写的代码应该是 index.php 的副本 它在 localhost 中,所以我无法向您展示。先生,您能解释一下您的评论吗?我无法理解这一点。请先生解释一下【参考方案2】:

在您的 function.php 上找到 wp_register_style 函数

你可以在那里添加你的自定义样式表文件

wp_register_style('THEMENAME', get_template_directory_uri() . '/style.css', array(), '1.0', 'all');
wp_enqueue_style('THEMENAME'); 

【讨论】:

wp_register_style 不在我的 fucntion.php 文件中。您能否提供一下我该如何做到这一点,因为使用上述方法我遇到了胎儿错误。请帮忙 so you cn 创建它 -- function NAME() wp_register_style('THEMENAME', get_template_directory_uri() . '/style.css', array(), '1.0', 'all'); wp_enqueue_style('主题名'); 没有。出现同样的问题。你能给我提供其他选择吗? 您的自定义样式表文件的名称是什么?它在某个目录中吗?还是在主主题文件夹中? style.css 是名称,它与 header.php 和 footer.php 位于同一文件(wordpress 文件夹)中

以上是关于如何在wordpress主题中添加设置页面的主要内容,如果未能解决你的问题,请参考以下文章

如何在wordpress的菜单中添加页面

wordpress怎么添加留言板

text 如何在WordPress主题的Body类中添加页面S ..

如何在wordpress自定义中添加颜色选项

wordpress的后台如何设置404错误页面?我的主题里面有个404.html,不清楚怎么调用

WordPress入门 之 设置导航菜单