使静态页面在WordPress中可编辑的正确方法

时间:2019-01-07 作者:Sid

我正在将一个有5个页面的小型静态网站转换为WordPress网站。

我创建了一个自定义主题并创建了页面(Home, About Us etc) 从Wp后端。

我已经将静态页面的HTML代码粘贴到Wp后端的相应页面上。例如,我创建了一个名为\'About Us\' 在Wp后端,通过Wp可视代码编辑器将旧静态About Us页面的内容粘贴到此新页面。我对主页、服务等其他页面也做了同样的操作。

我发现的问题是,为了对代码进行一些编辑,我必须首先在Wp visual editor中对其进行编辑,通过我的sublime文本更改CSS,然后在浏览器中查看结果。另一方面,我创建了一个名为page about的文件。php在模板文件夹中,并将HTML粘贴到此文件中,我可以像往常一样在sublime中编辑HTML和CSS,但客户端将无法从后端编辑页面。

如何使页面可以从客户端的Wp后端进行编辑,同时也可以在需要时方便地编辑代码?

1 个回复
最合适的回答,由SO网友:tmdesigned 整理而成

这是一个有点“找到正确的平衡”的问题。您正在努力平衡所有自定义主题开发人员必须处理的问题。

在范围的一端,您的内容区域只会弹出\\u content(),所有内容的格式和控制都由用户决定(或者您在后端,如果您是为他们做的话)。你给WordPress(TinyMCE)中的所见即所得(WYSIWYG)小编辑器带来了沉重的负担。

另一方面,将内容区域HTML保留在模板中,只允许他们在编辑器中输入特定的信息片段。

从你的问题来看,我想你可能错过了最后一点。如何让他们在控制页面模板中的HTML的同时输入内容?

没有唯一正确的答案,但许多开发人员使用post元数据来实现这一点。因此,如果您正在为所有员工制作一个包含姓名、标题、照片和简短简历的“与员工见面”页面,您应该设置特定的自定义元字段来跟踪这些数据。

然后,在页面模板中,将元数据注入HTML结构中的正确位置,使用PHP创建循环(即为每个工作人员重复HTML)。

有一些非常有用的插件可以实现这种方法。高级自定义字段可能是最常见的--您可以定义哪些字段放在哪里,在页面模板上访问它们就像访问get\\u field(\'\\uuuuuu\')一样简单。专业版是WordPress中最划算的版本——100美元用于所有网站,终身使用。

在我们的示例中,我们将创建一个如下所示的字段组:

工作人员(中继器字段)姓名(文本字段)

  • 标题(文本字段)
  • 照片(照片字段,设置为返回ID)
  • 个人信息(文本区域字段)
  • (分配给具有模板“会见团队”的页面的字段组)

    编辑“会见团队”页面时,您会看到这4个字段,由于这是一个重复项,您可以根据需要多次复制它们。

    在页面模板文件(即page meet the team.php)中,您可以循环查看该数据。

    //do we have any staff members?
    if ( have_rows( \'staff_member\' ) ):
    
        //loop through each staff member
        while ( have_rows( \'staff_member\' ) ) : the_row();
    
            //pull the fields for each iteration of the loop
            $staff_name = get_sub_field( \'name\' );
            $staff_title = get_sub_field( \'title\' );
            $staff_photo_id = get_sub_field( \'photo\' );
            $staff_bio = get_sub_field( \'bio\' );
    
            //set up the photo if it was set
            $staff_photo = $staff_photo_id ? wp_get_attachment_img( $staff_photo_id, \'medium\' ) : \'\';
    
            echo "<div class=\'staff-member\'>";
            echo "<h3 class=\'staff-member__name\'>$staff_name</h3>";
            echo "<h4 class=\'staff-member__title\'>$staff_title</h4>";
            if( $staff_photo ){
                echo "<div class=\'staff-member__photo-container\'>$staff_photo</div>";
            }
            echo "<p class=\'staff-member__bio\'>$staff_bio</p>";
            echo "</div><!-- /.staff-member -->";
    
        endwhile;
    
    endif;
    
    因此,我们用ACF设置了自定义字段,用它们在页面上输入动态内容,然后循环遍历这些数据并将其输出到页面模板上。最终用户几乎看不到这些内容——他们只是打开页面,输入内容。你应该帮他们搬重物。

    因此,所有这些可能都是将您认为是一项小工作(将一些HTML放入WordPress主题)变成一项复杂的工作(定义字段、创建模板等)。你可能会觉得这不值得,只需像你尝试过的方法一样保持网站更静态。这没什么错。

    老实说,你的问题是古腾堡诞生的一个重要原因。它为后端编辑器定义内容区域提供了更大的灵活性。这可能对您的具体情况没有太大帮助,因为您正在转换一个现有的静态站点,它不是围绕古腾堡这样的区块构建的。

  • 相关推荐

    显示作者姓名PHP(自制插件)

    我有一个需要帮助的问题,因为我自己找不到解决办法。我接管了一个网站,之前有人在那里创建了一个自制插件。。使用默认插件“Contact Form 7”,用户可以在页面上创建帖子。()https://gyazo.com/c8b20adecacd90fb9bfe72ad2138a980 )关于自行创建的插件“Contact Form 7 extender”,帖子是通过PHP代码在后台生成的(https://gyazo.com/115a6c7c9afafd2970b66fd421ca76a3)其工作原理如下:如果