在WordPress自定义中显示模板的特定页面

dfty9e19  于 11个月前  发布在  WordPress
关注(0)|答案(1)|浏览(202)

完整编辑:

我之前的问题不清楚,所以我完全编辑了我的问题。
我在我的模板的主根目录中创建了一个名为example.php的文件。
下面是example.php文件中的代码:

<?php /* Template Name: Template Example */ ?>

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Example</title>
</head>
    
<body>

<?php echo get_theme_mod('setting_input_contactUs'); ?>

</body>

</html>

字符串
为了自动创建此页面,我将以下代码放入functions.php文件中:

$check_page_exist = new WP_Query( array(
    'pagename'       => 'TemplateExample',
    'posts_per_page' => 1,
    'no_found_rows'  => true,
    'fields'         => 'ids',
  ) );
  
  $template_slug    = 'example.php';
  
  if ( empty( $check_page_exist->posts ) ) { 
       $page_id = wp_insert_post(
         array(
              'comment_status' => 'close',
              'ping_status'    => 'close',
              'post_author'    => 1,
              'post_title'     => ucwords( 'Template Example' ),
              'post_name'      => strtolower( str_replace( ' ', '-', trim( 'TemplateExample' ) ) ),
              'post_status'    => 'publish',
              'post_content'   => ' ',
              'post_type'      => 'page',
              'post_parent'    => ' ',
              'page_template'  => $template_slug,         
         )
     );
      
  }


现在我想通过WordPress自定义在其中放置一个控制器。为此,我再次将以下代码放入functions.php文件中,这是一个简单的输入控制器:

function customize_contactUs($wp_customize){

$wp_customize->add_section('section_input_contactUs', array(
    'title' => esc_html__('Contact us sheet', 'section'),
    'priority' => 5,
));  

    
    $wp_customize->add_setting( 'setting_input_contactUs', 
 array( 
     
    'type'       => 'theme_mod', 
     'transport'  => 'refresh',  //postMessage
 ) 
);
    

$wp_customize->add_control( 'setting_input_contactUs',
   array(
     
      'section' => 'section_input_contactUs',
      'type' => 'text',
      'input_attrs' => array(
         'placeholder' => __( 'Default text' ),
      ),
       
   )
);

}
add_action( 'customize_register', 'customize_contactUs' );


当我进入设置>显示>自定义时,主题主页默认显示在实时预览中。现在,当我点击为example.php文件创建的输入控制器时,控制器工作正常,但实时预览仍然显示主页。
我在主页上放了以下标签,这样我就可以通过自定义转到我想要的页面:

<a href="https://localhost/site/templateexample">Go To Example</a>


但是点击它只会刷新页面,我不会被重定向到任何页面。
但是如果我在WordPress自定义之外点击这个链接,我会正确地进入(示例)页面。
请问如何通过实时预览进入(example)页面进行定制?

编辑:

在实时预览中不显示创建的页面的原因是缺少以下简码:

<?php get_header(); ?>

<?php get_footer(); ?>


我试图在实时预览中呈现的页面不需要<?php get_header(); ?><?php get_footer(); ?>,如果我使用这两个代码;我在创建的页面中放置的代码干扰了设计的模板,因此模板被破坏。
有办法解决吗?

mxg2im7a

mxg2im7a1#

我认为WordPress官方网站上的文档会对你有所帮助。https://developer.wordpress.org/themes/template-files-section/page-template-files/
对于您的自定义模板,您需要将文件命名为page-contact-us.php,或者确保在自定义文件的头中包含以下内容:

<?php /* Template Name: Example Template */ ?>

字符串
如果选择后者,则必须从编辑器中编辑页面属性,并从下拉列表中选择页面模板。

相关问题