centrid/wpoow

WordPress 面向对象包装器

2.0.0 2023-01-13 08:17 UTC

This package is auto-updated.

Last update: 2024-09-10 17:38:11 UTC


README

一个面向对象的Wordpress包装器,用于快速开发

如果您在WordPress中创建过自定义主题/插件(这需要相当多的配置),您知道这可能会非常繁琐。这个包装器旨在通过提供一个面向对象的库来简化这个过程,该库抽象了与此相关的大多数任务。下面是一个简单的示例,展示您如何使用这个包装器轻松创建一个自定义 PostType

//functions.php

include 'wpAPI/wpAPI.php';

$WPooW = new wpAPI();
$bookReviewPostType = $WPooW->CreatePostType("_bookReview", "Book Review", true);

$bookReviewPostType->AddField(new Text("_bookTitle", "Book Title"));
$bookReviewPostType->AddField(new Text("_bookAuthor", "Book Author"));
$bookReviewPostType->AddField(new Uploader("_bookImage", "Book Image"));
$bookReviewPostType->AddField(new MultiSelect("_bookCategories", "Categories", ["Philosophy" => "Philosophy", "Auto-Biography" => "Auto-Biography", "Fiction" => "Fiction"]));
$bookReviewPostType->AddField(new RichTextArea("_mySummary", "My Summary"));
$bookReviewPostType->AddField(new Text("_myRating", "My Rating"));

$bookReviewPostType->Render();

这将创建一个自定义页面(通过wp-admin访问)。见下文:

intro_images

图1:新自定义类型的网格布局

intro_images_expanded

图2:添加新自定义类型

要访问通过自定义PostType添加的数据,您可以使用传统的WordPress查询(WP_QUERY),通过引用您声明的PostType ID(在上述情况中,它将是_bookReview)。然而,WPooW提供了一个包装类,这使得访问这些数据更加容易。以下是如何使用WPooW库获取这些数据的示例:

<style>
	.book_block{
		display: inline-block;
	}
	.book_img{
		float: left;
		width: 50%;
	}
	.book_img  img{
		height: 200px;
		width: auto;
	}

	.book_details {
		float: right;
		width: 45%;
		padding-left: 2%;
	}

	.book_details p {
		font-size: 14px;
		margin-bottom: 2px;
		margin-top: 2px;
		color: white;
	}
</style>

<div class="wrap">
   <?php
      $bookReviews = wpAPIObjects::GetInstance()->GetObject("_bookReview");
      foreach ($bookReviews->Query()->Select()->Fetch() as $book)
      {

         echo '<div class="book_block">';
         echo ' <div class="book_img">';
         echo '     <img src="'.json_decode( $book["_bookImage"])->url.'" alt="'.$book["_bookTitle"].'"  >';
         echo '     </div>';
         echo '     <div  class="book_details">';
         echo "    <p>".$book["_bookTitle"]."</p>";
         echo "    <p>".$book["_bookAuthor"]."</p>";
         echo "    <p>". (is_array($book["_bookCategories"]) ? implode(',', $book["_bookCategories"]) : '')."</p>";
         echo "    <p>".$book["_myRating"]."</p>";
         echo ' </div>';
         echo '</div>';

      }
   ?>

</div>Result

修改WordPress TwentySeventeen主题模板后,我们的网页可能看起来如下:

1529530425830

文档

WPooW库在 http://wpoow.devchid.com 上有完整的文档。如果您认为还有其他需要记录的内容没有被记录,请随时提出。

贡献

WPooW是一个开源项目,非常重视贡献。

如果您正在贡献一个错误修复,请创建一个包含以下详细信息的pull request:

  • 您正在解决的问题/错误
  • 此修复针对的WPooW版本
  • 您如何测试修复

如果是新功能,请将其作为带有增强标签的问题添加,详细说明新功能和您认为为什么需要它。我们将在那里讨论它,一旦达成一致,您就可以创建一个带有上述详细信息的pull request。

作者

许可

本项目采用MIT许可 - 有关详细信息,请参阅LICENSE文件

注意

此库设计由开发人员用于创建WordPress主题和插件。它本身不是一个插件或主题。