Pular para o conteúdo principal

Fornecer conteúdo para sua demonstração com o Playground

Uma das coisas que você pode fazer para oferecer uma boa demonstração com o WordPress Playground é carregar conteúdo padrão que destaque melhor os recursos do seu plugin ou tema. Esse conteúdo pode incluir imagens ou outros recursos.

Há vários passos de Blueprint e estratégias para importar conteúdo (ou gerá-lo) na instância do Playground. Este guia apresenta as fontes disponíveis. Para uma comparação específica das importações XML, PHP e ZIP, incluindo vantagens, desvantagens e desempenho medido, consulte Importando conteúdo para o WordPress com Blueprints.

importWxr

Com o passo importWxr, você pode importar conteúdo de um arquivo .xml WordPress eXtended RSS (WXR) previamente exportado de uma instalação existente do WordPress.

O passo pode obter anexos, reescrever URLs, incluir ou excluir comentários e controlar como os autores importados são mapeados para usuários locais. Este exemplo atribui o conteúdo importado ao usuário admin existente e mantém desativado o download de anexos:

{
"$schema": "https://playground.wordpress.net/blueprint-schema.json",
"landingPage": "/wp-admin/edit.php",
"login": true,
"steps": [
{
"step": "importWxr",
"file": {
"resource": "url",
"url": "https://raw.githubusercontent.com/WordPress/blueprints/trunk/blueprints/install-activate-setup-theme-from-gh-repo/blueprint-content.xml"
},
"fetchAttachments": false,
"rewriteUrls": true,
"importComments": true,
"authorsMode": "default-author",
"defaultAuthorUsername": "admin"
}
]
}

   Executar Blueprint         Ver blueprint.json   

Defina authorsMode como create para criar usuários locais para os autores importados ou como map e forneça authorsMap quando os usuários correspondentes já existirem. Você também pode fornecer urlMapping para substituições explícitas de URLs antigas por novas.

Para baixar a mídia referenciada pela exportação, defina fetchAttachments como true e ative a rede do Blueprint. As URLs de mídia originais ainda precisam estar disponíveis:

{
"$schema": "https://playground.wordpress.net/blueprint-schema.json",
"features": {
"networking": true
},
"steps": [
{
"step": "importWxr",
"file": {
"resource": "url",
"url": "https://example.com/wordpress-export.xml"
},
"fetchAttachments": true
}
]
}

Quando as URLs originais dos anexos não estiverem disponíveis, uma opção é enviar as imagens ao repositório que hospeda o Blueprint e substituir os caminhos no arquivo .xml exportado. Em um repositório público do GitHub, use uma URL bruta como https://raw.githubusercontent.com/{repo}/{branch}/{image_path}.

<!-- wp:image {"lightbox":{"enabled":false},"id":4751,"width":"78px","sizeSlug":"full","linkDestination":"none","align":"center","className":"no-border"} -->
<figure class="wp-block-image aligncenter size-full is-resized no-border">
<img src="https://raw.githubusercontent.com/WordPress/blueprints/trunk/blueprints/install-activate-setup-theme-from-gh-repo/images/avatars.png" alt="" class="wp-image-4751" style="width:78px" />
</figure>
<!-- /wp:image -->

Para uma demonstração autocontida, coloque o arquivo .xml exportado e seus recursos ao lado de blueprint.json em um pacote de Blueprint e use um recurso bundled em vez de uma URL remota.

importWordPressFiles

Com o passo importWordPressFiles, você pode restaurar os arquivos WordPress de nível superior de um arquivo .zip na pasta raiz da instância. Por exemplo, se um arquivo contiver wp-content e wp-includes, esses diretórios substituirão os correspondentes no Playground.

O ZIP pode ser criado a partir de uma instância do Playground com a opção Download as zip no menu de opções do Playground. As exportações atuais incluem um manifesto que permite atualizar as URLs de escopo do Playground após a restauração.

Você pode preparar uma demonstração do seu tema ou plugin WordPress, incluindo banco de dados, imagens, plugins, temas e configurações, em uma instância do Playground e exportar um snapshot. O snapshot pode ser restaurado depois com importWordPressFiles. Este exemplo espera encontrar site.zip ao lado de blueprint.json em um pacote de Blueprint:

{
"$schema": "https://playground.wordpress.net/blueprint-schema.json",
"landingPage": "/",
"login": true,
"steps": [
{
"step": "importWordPressFiles",
"wordPressFilesZip": {
"resource": "bundled",
"path": "/site.zip"
}
}
]
}

O passo pode detectar um diretório WordPress completo dentro de uma pasta externa. Se um arquivo contiver mais de um site ou precisar de um diretório inicial explícito, defina pathInZip como o diretório que contém os arquivos WordPress. Mantenha compatíveis as versões do WordPress, PHP, tema e plugin na origem e no destino. Restaure apenas arquivos ZIP de fontes confiáveis, pois eles podem conter um banco de dados inteiro e PHP executável.

importThemeStarterContent

Alguns temas têm conteúdo inicial que pode ser publicado para destacar seus recursos.

Com o passo importThemeStarterContent, você pode publicar o conteúdo inicial de qualquer tema instalado, mesmo que ele não esteja ativo na instância do Playground:

{
"$schema": "https://playground.wordpress.net/blueprint-schema.json",
"steps": [
{
"step": "installTheme",
"themeData": {
"resource": "wordpress.org/themes",
"slug": "twentytwenty"
}
},
{
"step": "installTheme",
"themeData": {
"resource": "wordpress.org/themes",
"slug": "twentytwentyone"
},
"options": {
"activate": true
}
},
{
"step": "importThemeStarterContent",
"themeSlug": "twentytwenty"
}
]
}

   Executar Blueprint   

Você também pode publicar o conteúdo inicial de um tema durante sua instalação com o passo installTheme, definindo a opção importStarterContent como true:

{
"$schema": "https://playground.wordpress.net/blueprint-schema.json",
"steps": [
{
"step": "installTheme",
"themeData": {
"resource": "wordpress.org/themes",
"slug": "twentytwenty"
},
"options": {
"activate": true,
"importStarterContent": true
}
}
]
}

   Executar Blueprint   

wp-cli

Outra forma de gerar conteúdo para seu tema ou plugin é o passo wp-cli. Ele executa comandos WP-CLI como wp post generate:

{
"$schema": "https://playground.wordpress.net/blueprint-schema.json",
"landingPage": "/wp-admin/edit.php",
"login": true,
"steps": [
{
"step": "wp-cli",
"command": "wp post generate --count=20 --post_type=post --post_date=1999-01-04"
}
]
}

   Executar Blueprint   

Você também pode combinar o passo wp-cli com o passo writeFile para criar posts a partir de conteúdo existente e importar imagens na instância do Playground:

{
"$schema": "https://playground.wordpress.net/blueprint-schema.json",
"landingPage": "/?p=4",
"login": true,
"steps": [
{
"step": "writeFile",
"path": "/wordpress/wp-content/postcontent.md",
"data": {
"resource": "url",
"url": "https://raw.githubusercontent.com/wordpress/blueprints/trunk/blueprints/wpcli-post-with-image/postcontent.md"
}
},
{
"step": "wp-cli",
"command": "wp post create --post_title='Welcome to Playground' --post_status='published' /wordpress/wp-content/postcontent.md"
},
{
"step": "writeFile",
"path": "/wordpress/wp-content/Select-storage-method.png",
"data": {
"resource": "url",
"url": "https://raw.githubusercontent.com/wordpress/blueprints/trunk/blueprints/wpcli-post-with-image/Select-storage-method.png"
}
},
{
"step": "wp-cli",
"command": "wp media import wordpress/wp-content/Select-storage-method.png --post_id=4 --title='Select your storage method' --featured_image"
}
]
}

   Executar Blueprint   

Confira o exemplo “Use wp-cli to add a post with image” da galeria de Blueprints para ver a conexão entre o conteúdo e a imagem destacada.

runPHP

Com o passo runPHP, você pode executar código PHP para inserir ou configurar dados na instalação do WordPress, por exemplo com a função wp_insert_post. Carregue /wordpress/wp-load.php antes de chamar as APIs do WordPress e trate os erros para que uma falha de configuração não gere silenciosamente uma demonstração incompleta:

{
"$schema": "https://playground.wordpress.net/blueprint-schema.json",
"landingPage": "/wp-admin/edit.php",
"login": true,
"steps": [
{
"step": "runPHP",
"code": "<?php\nrequire_once '/wordpress/wp-load.php';\n\n$post_id = wp_insert_post(\n\tarray(\n\t\t'post_title' => 'Simple post from PHP',\n\t\t'post_content' => '<!-- wp:paragraph --><p>This is a simple post inserted with wp_insert_post.</p><!-- /wp:paragraph -->',\n\t\t'post_author' => 1,\n\t\t'post_status' => 'publish',\n\t),\n\ttrue\n);\n\nif ( is_wp_error( $post_id ) ) {\n\tthrow new RuntimeException( $post_id->get_error_message() );\n}"
}
]
}

   Executar Blueprint   

Para pequenos conjuntos de dados determinísticos, runPHP mantém a lógica de configuração próxima ao Blueprint. Para grandes conjuntos de dados editoriais ou um site completo já preparado, WXR ou um snapshot ZIP geralmente é mais fácil de manter. O guia de comparação de importações explica as vantagens e desvantagens em detalhes.