All Projects → iolevel → Peachpie Wordpress

iolevel / Peachpie Wordpress

Licence: other
WordPress running on .NET Core.

Programming Languages

csharp
926 projects

Projects that are alternatives of or similar to Peachpie Wordpress

Wpdotnet Sdk
WordPress compiled to .NET Standard. SDK for ASP.NET Core.
Stars: ✭ 309 (+30.38%)
Mutual labels:  wordpress, dotnetcore
ExtCore-Sample
Full-featured ExtCore framework 7 sample web application
Stars: ✭ 29 (-87.76%)
Mutual labels:  sample, dotnetcore
Jethub
Sample App with Jetpack components(LiveData, Navigation, ViewModel) + MVVM + coroutine + single activity
Stars: ✭ 224 (-5.49%)
Mutual labels:  sample
Wordpress Simple History
🔍🕵️‍♀️ WordPress audit log that track user changes in WordPress admin using a nice activity feed.
Stars: ✭ 232 (-2.11%)
Mutual labels:  wordpress
Theme Sniffer
Theme Sniffer plugin using sniffs.
Stars: ✭ 228 (-3.8%)
Mutual labels:  wordpress
Urf.core
Unit of Work & Repositories Framework - .NET Core, NET Standard, Entity Framework Core. 100% extensible & lightweight. Live demo: https://goo.gl/QpJVgd
Stars: ✭ 226 (-4.64%)
Mutual labels:  dotnetcore
Dualgan
DualGAN-tensorflow: tensorflow implementation of DualGAN
Stars: ✭ 230 (-2.95%)
Mutual labels:  implementation
Wordpress Android
WordPress for Android
Stars: ✭ 2,601 (+997.47%)
Mutual labels:  wordpress
Givewp
GiveWP - The #1 Donation Plugin for WordPress. Easily accept donations and fundraise using your WordPress website.
Stars: ✭ 233 (-1.69%)
Mutual labels:  wordpress
Gutenblock
The easiest way to develop and release Gutenberg blocks (components) for WordPress
Stars: ✭ 229 (-3.38%)
Mutual labels:  wordpress
Generator Chisel
Chisel is a development framework for creating easy to maintain and fast WordPress websites
Stars: ✭ 233 (-1.69%)
Mutual labels:  wordpress
Headless Wp Nuxt
🏔 Headless WordPress JAMstack Template
Stars: ✭ 229 (-3.38%)
Mutual labels:  wordpress
Cognitive Face Python
Python SDK for the Microsoft Face API, part of Cognitive Services
Stars: ✭ 226 (-4.64%)
Mutual labels:  sample
Designpatterns
Simple repository containing one simple example for all existing patterns in C#
Stars: ✭ 231 (-2.53%)
Mutual labels:  dotnetcore
Camelotia
Cross-platform .NET sample GUI app for cloud file management. Built with ReactiveUI, AvaloniaUI, Universal Windows Platform, Xamarin Forms, and WPF, runs on Windows, Linux, Mac and Android.
Stars: ✭ 221 (-6.75%)
Mutual labels:  dotnetcore
Identity.dapper
Identity package that uses Dapper instead EntityFramework for use with .NET Core
Stars: ✭ 234 (-1.27%)
Mutual labels:  dotnetcore
Wechatblog
💘微信小程序 & 个人博客 & WordPress & WordPress REST API
Stars: ✭ 223 (-5.91%)
Mutual labels:  wordpress
Chromely
Build HTML Desktop Apps on .NET/.NET Core/.NET 5 using native GUI, HTML5, JavaScript, CSS
Stars: ✭ 2,728 (+1051.05%)
Mutual labels:  dotnetcore
Ionic Wordpress Integration
Ionic Wordpress starter app 😎. Learn how to communicate your ionic app with Wordpress REST API with this starter and detailed tutorial.
Stars: ✭ 230 (-2.95%)
Mutual labels:  wordpress
Arkit2.0 Prototype
After Apple’s introduction of ARKit 2, we have been consistently working behind to create shared-AR experiences. Our goal is to improve the utility of mobile using AR experiences.
Stars: ✭ 236 (-0.42%)
Mutual labels:  sample

Chat with the community on Gitter if you need help:

This project demonstrates how to start an ASP.NET Core server, integrate WordPress into its pipeline and add additional PHP plugins into it.

WordPress

Even though the project is noticeably small, it contains the entire WordPress CMS. How? This complex PHP web framework was already compiled into the .NET Standard library (see wpdotnet-sdk for more information) and packed into a NuGet package. This demo may just reference it.

To find out more about PeachPie, check out our peachpie.io, which includes tutorials, benchmarks and articles on PeachPie.

Create MySQL database

WordPress requires you to start your database server with a database in it. By default it expects a database server on localhost, port 3306, with a database named "wordpress".

You can use docker to quickly start a database server in virtual environment:

docker run -e MYSQL_ROOT_PASSWORD=password -e MYSQL_DATABASE=wordpress -p 3306:3306 -d mysql

Configuration

The configuration itself serves as a demonstration of combining a legacy PHP application with .NET. The demo takes advantage of the ASP.NET Core configuration mechanism, namely the files appsettings.json, appsettings.deployment.json and appsettings.production.json. This allows for having a different configuration for each environment without the need of altering the source code of the project.

More on configuring WpDotNet on https://docs.peachpie.io/scenarios/wordpress/configuration/.

WordPress PHP Plugin

With this approach it is possible to have a project containing only the plugin. WordPress itself is already compiled and the plugin has a dependency on it (like any other C# app you would make).

The build process will do following:

  • compiles .php files within the MyContent directory. The content is implicitly nested within wp-content subdirectory.
  • packs the compiled DLL together with content files (like images, scripts etc.) into a NuGet package.
  • copies the project content into the application output directory, together with WordPress content files extracted from its NuGet.

WordPress C# plugin

The project takes advantage of the WpDotNet SDK which provides a C# abstraction IWpPlugin. Objects of this type can be passed to the WordPress middleware (see UseWordPress) and hook onto filters and actions available in the WordPress API.

Sourceless Distribution

The WordPress package was already configured, so the original PHP source code is not a part of the NuGet nor of the compiled DLL. In case of additional plugins (see PeachPied.WordPress.MyPlugin), it depends what source files are needed in run time. Usually only the main plugin file (containing the WordPress metadata) has to be distributed together with the DLL, so that WordPress can read its content and work properly. The other files can be excluded from the package.

As a result, this project serves as a demonstration of:

  • distributing the WordPress plugin without its source codes
  • build and maintain plugins separately as separate NuGet packages
  • maintaining/providing plugins with a dependency on a certain WordPress version
  • signing the plugin with a private key
  • possibly obfuscating the DLL
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].