因此,我正在为客户开发Wordpress主题,并且我想让他们有能力编辑模板代码中出现的许多内容。例如页脚中的单行文本或标题中的电话号码。
我一直在寻找一个插件,让我可以拥有管理员的一部分,以及#34;常见元素"或类似的东西,他们可以编辑简单的文本字段,我可以在模板中粘贴一些PHP代码,这样当他们更新他们的电话号码时,它将更新他们模板中所有地方的数字。
有点像可编辑的"包含"从某种意义上说。
所以我很想知道是否有人知道插件可以轻松地做到这一点 - 或者如果有人知道如何写一些小的东西(我在powers.php文件中假设)可能使这成为可能。
谢谢, 亚历克斯。
答案 0 :(得分:0)
为什么不添加主题选项页面?
这将使用户能够添加/更改电话号码以及页脚文本等。
将此添加到您的主题function.php文件..
require_once ( get_template_directory() . '/theme-options.php' );
创建一个名为“theme-options.php”的新文件,它将驻留在主题文件夹中。
copy&粘贴下面的代码......
在header.php文件的顶部或您要显示电话号码的地方,只需拨打电话即可获取主题选项,
$themeOptions = get_option( 'my_theme_options' );
从此处您可以使用<?php echo $themeOptions['sitetel'];?>
打印已保存的电话号码....也可以在您的页脚中
你可以放<?php echo $themeOptions['copyright'];?>
作为一个额外的奖励:)我已经包含了一个简单的短代码,你可以在帖子和&amp;用于呼叫主题电话号码的页面......
在帖子或页面中,只需输入短代码[tel]即可打印帖子中的数字。 如果,当电话号码需要更改时,只需在主题选项页面中更改它,它将在网站范围内更改..
祝你好运...... 马蒂<?php
// CUSTOM THEME OPTIONS PAGE
add_action( 'admin_init', 'my_theme_options_init' );
add_action( 'admin_menu', 'my_theme_options_add_page' );
/**
* Init plugin options to white list our options
*/
function my_theme_options_init()
{
register_setting( 'my_theme_options',
'my_theme_options',
'my_theme_options_validate' );
}
/**
* Load up the menu page
*/
function my_theme_options_add_page()
{
add_theme_page( __( 'Theme Options',
'my_theme' ),
__( 'Theme Options',
'my_theme' ),
'edit_theme_options',
'my_theme_options',
'my_theme_options_do_page'
);
}
/**
* Create the options page
*/
function my_theme_options_do_page()
{
global $select_options, $radio_options;
if ( ! isset( $_REQUEST['settings-updated'] ) )
$_REQUEST['settings-updated'] = false;
?>
<div class="wrap">
<?php echo "<h2>" . get_current_theme() . __( ' Theme Options', 'my_theme' ) . "</h2>"; ?>
<?php
if ( false !== $_REQUEST['settings-updated'] ) :
?>
<div class="updated fade">
<p>
<strong>
<?php _e( 'Theme Options saved', 'my_theme' ); ?>
</strong>
</p>
</div>
<?php
endif;
?>
<form method="post" action="options.php">
<?php
settings_fields( 'my_theme_options' );
$options = get_option( 'my_theme_options' );
?>
<table class="form-table">
<?php //SITE TELEPHONE NUMBER ?>
<tr valign="top">
<th scope="row">
<?php _e( 'Telephone Number', 'my_theme' ); ?>
</th>
<td>
<input id="my_theme_options[sitetel]" class="regular-text" type="text" name="my_theme_options[sitetel]" value="<?php esc_attr_e( $options['sitetel'] ); ?>" />
<label class="description" for="my_theme_options[sitetel]"><?php _e( 'Website Telephone Number', 'my_theme' ); ?></label>
<br />
<small>Use the shortcode <strong>[tel]</strong> to display telephone number in posts</small>
</td>
</tr>
<?php // COPYRIGHT ?>
<tr valign="top"><th scope="row"><?php _e( 'Copyright', 'my_theme' ); ?></th>
<td>
<input id="my_theme_options[copyright]" class="regular-text" type="text" name="my_theme_options[copyright]" value="<?php esc_attr_e( $options['copyright'] ); ?>" />
<label class="description" for="rehab_theme_options[copyright]"><?php _e( 'footer Copyright text', 'my_theme' ); ?></label>
</td>
</tr>
</table>
<p class="submit">
<input type="submit" class="button-primary" value="<?php _e( 'Save Options', 'my_theme' ); ?>" />
</p>
</form>
</div>
<?php
}
/**
* Sanitize and validate input. Accepts an array, return a sanitized array.
*/
function my_theme_options_validate( $input ) {
global $select_options, $radio_options;
// Say our text option must be safe text with no HTML tags
$input['sitetel'] = wp_filter_post_kses( $input['sitetel'] );
$input['copyright'] = wp_filter_post_kses( $input['copyright'] );
return $input;
}
// SHOW THEME OPTION TELEPHONE NUMBER
function my_theme_show_tel_number()
{
$options = get_option( 'my_theme_options' );
return "<strong style='color:#036;'>".$options['sitetel']."</strong>";
}
// ADD TEL SHORTCODE
function my_theme_register_shortcodes(){
add_shortcode('tel', 'my_theme_show_tel_number');
}
add_action( 'init', 'my_theme_register_shortcodes');
?>