centrid / wpoow
WordPress 面向对象包装器
Requires
- twig/twig: ^3.0
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访问)。见下文:
图1:新自定义类型的网格布局
图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主题模板后,我们的网页可能看起来如下:
文档
WPooW库在 http://wpoow.devchid.com 上有完整的文档。如果您认为还有其他需要记录的内容没有被记录,请随时提出。
贡献
WPooW是一个开源项目,非常重视贡献。
如果您正在贡献一个错误修复,请创建一个包含以下详细信息的pull request:
- 您正在解决的问题/错误
- 此修复针对的WPooW版本
- 您如何测试修复
如果是新功能,请将其作为带有增强标签的问题添加,详细说明新功能和您认为为什么需要它。我们将在那里讨论它,一旦达成一致,您就可以创建一个带有上述详细信息的pull request。
作者
- Chido Warambwa - 初始工作 - devchid.com
许可
本项目采用MIT许可 - 有关详细信息,请参阅LICENSE文件
注意
此库设计由开发人员用于创建WordPress主题和插件。它本身不是一个插件或主题。