完整编辑:
我之前的问题不清楚,所以我完全编辑了我的问题。
我在我的模板的主根目录中创建了一个名为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(); ?>
,如果我使用这两个代码;我在创建的页面中放置的代码干扰了设计的模板,因此模板被破坏。
有办法解决吗?
1条答案
按热度按时间mxg2im7a1#
我认为WordPress官方网站上的文档会对你有所帮助。https://developer.wordpress.org/themes/template-files-section/page-template-files/
对于您的自定义模板,您需要将文件命名为page-contact-us.php,或者确保在自定义文件的头中包含以下内容:
字符串
如果选择后者,则必须从编辑器中编辑页面属性,并从下拉列表中选择页面模板。