使模板中常用元素可编辑

时间:2014-06-04 10:00:44

标签: php wordpress plugins include themes

因此,我正在为客户开发Wordpress主题,并且我想让他们有能力编辑模板代码中出现的许多内容。例如页脚中的单行文本或标题中的电话号码。

我一直在寻找一个插件,让我可以拥有管理员的一部分,以及#34;常见元素"或类似的东西,他们可以编辑简单的文本字段,我可以在模板中粘贴一些PHP代码,这样当他们更新他们的电话号码时,它将更新他们模板中所有地方的数字。

有点像可编辑的"包含"从某种意义上说。

所以我很想知道是否有人知道插件可以轻松地做到这一点 - 或者如果有人知道如何写一些小的东西(我在powers.php文件中假设)可能使这成为可能。

谢谢, 亚历克斯。

1 个答案:

答案 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');
?>