在自己的WordPress主题自定义中显示section编辑按钮

基本的Wordpress主题在定制器中显示此编辑按钮:

我也想将其添加到自己的主题中。根据这篇文章, 打开选择性刷新是必要的。

我试图通过我的自定义部分来做到这一点。仔细看看add_theme_support(‘customize-selective-refresh-widgets’);和selective_refresh-> add_partial(), 因为我认为这些是我唯一需要添加的内容:

  function toorgmot_customize_register($wp_customize){

    add_theme_support( 'customize-selective-refresh-widgets' );

    $wp_customize->add_section('toorgmot-welcome-message-section', array(
      'title' => 'Welcome Message'
    ));

    $wp_customize->add_setting('toorgmot-welcome-message-text', array(
      'default' => 'Hallo en welkom!'
    ));

    $wp_customize->add_control( new WP_Customize_Control($wp_customize, 'toorgmot-welcome-message-control', array(
      'label' => 'Text', 'section'=> 'toorgmot-welcome-message-section', 'settings' => 'toorgmot-welcome-message-text'
    )));

    $wp_customize->selective_refresh->add_partial( 'toorgmot-welcome-message-text', array(
        'selector' => '.welcome-message', 'render_callback' => function() { 
          echo get_theme_mod('toorgmot-welcome-message-text'); 
        }, ));
  }

  add_action('customize_register', 'toorgmot_customize_register');

它不会返回错误。多余的部分可以在定制器内部进行编辑, 就像我想要的那样。但是, 选择性刷新不起作用, 并且编辑按钮也不会显示。


#1


你需要添加代码:

$setting = $wp_customize->get_setting( 'toorgmot-welcome-message-text' );
$setting->transport = 'postMessage';

要不就:

$wp_customize->get_setting( 'toorgmot-welcome-message-text' )->transport = 'postMessage';

#2


在<head>标记内, 在<body>之后, 在</ body>之前的wp_footer()之后, 调用wp_head()。就这样

<!DOCTYPE html>
<html>
    <head>
        <meta charset="<?php bloginfo( 'charset' ); ?>">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <?php wp_head(); ?>
    </head>
    <body>
        <?php wp_head(); ?>

<?php wp_footer(); ?>
</body>
</html>

发表评论

© 2021 狸玖技术站 - 基于 WordPress