Home
Softono
1

10up

Professional software vendor delivering innovative solutions on the Softono platform. Specialized in both open-source and proprietary software development.

Total Products
6

Software by 10up

ElasticPress
Open Source

ElasticPress

# ElasticPress > A fast and flexible search and query engine for WordPress. [![Support Level](https://img.shields.io/badge/support-active-green.svg)](#support-level) [![Tests Status](https://github.com/10up/ElasticPress/actions/workflows/test.yml/badge.svg?branch=develop)](https://github.com/10up/ElasticPress) [![Release Version](https://img.shields.io/github/release/10up/ElasticPress.svg)](https://github.com/10up/ElasticPress/releases/latest) ![WordPress tested up to version](https://img.shields.io/wordpress/plugin/tested/elasticpress?label=WordPress) [![MIT License](https://img.shields.io/github/license/10up/ElasticPress.svg)](https://github.com/10up/ElasticPress/blob/develop/LICENSE.md) * Check out the [ElasticPress Docs](https://www.elasticpress.io/documentation/) **Please note:** as of ElasticPress 4.0.0 `trunk` is the stable branch, built assets were removed from the `develop` branch, a ZIP with the plugin and its built assets are available on the [GitHub Releases page](https://github.com/10up/ElasticPress/releases), and will include a build script should you want to build assets from a branch. As such, please ensure you have updated any references you have from `master` to `trunk` or to GitHub releases depending on whether you require built assets or not. ## Overview ElasticPress, a fast and flexible search and query engine for WordPress, enables WordPress to find or “query” relevant content extremely fast through a variety of highly customizable features. WordPress out-of-the-box struggles to analyze content relevancy and can be very slow. ElasticPress supercharges your WordPress website making for happier users and administrators. The plugin even contains features for popular plugins. ## Documentation * [Support site with FAQs, tutorials, and docs ☞](https://www.elasticpress.io/documentation/) * [Security Policy ☞](https://github.com/10up/ElasticPress/blob/develop/SECURITY.md) ## Requirements and Compatibility ### Requirements ElasticPress requires these software with the following versions: * [Elasticsearch](https://www.elastic.co) 5.2+ * [WordPress](https://wordpress.org) 6.2+ * [PHP](https://php.net/) 7.4+ ### Compatibility The WooCommerce feature is compatible with the last two major versions of the [WooCommerce plugin](https://wordpress.org/plugins/woocommerce/). ## Building Assets Simply downloading the repository files is not enough to have the plugin working, as CSS and JavaScript files are built during the release process. If you want to use a development version of the plugin you will to run: `npm install && npm run build` [Node.js](https://nodejs.org/en/) (v20) and [npm](https://www.npmjs.com/) (v9) are required. ## React Components Interested in integrating ElasticPress in your headless WordPress website? Check out [ElasticPress React](https://github.com/10up/elasticpress-react). ## Issues If you identify any errors or have an idea for improving the plugin, please [open an issue](https://github.com/10up/ElasticPress/issues?state=open). We're excited to see what the community thinks of this project, and we would love your input! ## Support Level **Active:** 10up is actively working on this, and we expect to continue work for the foreseeable future including keeping tested up to the most recent version of WordPress. Bug reports, feature requests, questions, and pull requests are welcome. ## Changelog A complete listing of all notable changes to ElasticPress are documented in [CHANGELOG.md](https://github.com/10up/elasticpress/blob/develop/CHANGELOG.md). ## Upgrade notices ### 3.5 **Search Algorithm Upgrade Notice:** Version 3.5 includes a revamp of the search algorithm. This is a backwards compatibility break. If you'd like to revert to the old search algorithm, you can use the following code: `add_filter( 'ep_search_algorithm_version', function() { return '3.4'; } );`. The new algorithm offers much more relevant search results and removes fuzziness which results in mostly unwanted results for most people. If you are hooking in and modifying the search query directly, it's possible this code might break and you might need to tweak it. ### 4.0.0 **Note that ElasticPress 4.0.0 release removes built assets from the `develop` branch, replaced `master` with `trunk`, added a ZIP with the plugin and its built assets in the [GitHub Releases page](https://github.com/10up/ElasticPress/releases), and included a build script should you want to build assets from a branch.** As such, please plan to update any references you have from `master` to `trunk` or to GitHub Releases depending on whether you require built assets or not. ## Contributing Please read [CODE_OF_CONDUCT.md](https://github.com/10up/elasticpress/blob/develop/CODE_OF_CONDUCT.md) for details on our code of conduct, [CONTRIBUTING.md](https://github.com/10up/elasticpress/blob/develop/CONTRIBUTING.md) for details on the process for submitting pull requests to us, and [CREDITS.md](https://github.com/10up/elasticpress/blob/develop/CREDITS.md) for a listing of maintainers of, contributors to, and libraries used by ElasticPress. ## Like what you see? <p align="center"> <a href="https://10up.com/contact/"><img src="https://10up.com/uploads/2016/10/10up-Github-Banner.png" width="850"></a> </p>

WordPress Themes & Plugins
1.3K Github Stars
classifai
Open Source

classifai

# ClassifAI ![ClassifAI](https://github.com/10up/classifai/blob/develop/assets/img/banner-1544x500.png) [![Support Level](https://img.shields.io/badge/support-active-green.svg)](#support-level) [![Release Version](https://img.shields.io/github/release/10up/classifai.svg)](https://github.com/10up/classifai/releases/latest) ![WordPress tested up to version](https://img.shields.io/badge/WordPress-v6.9%20tested-success.svg) [![GPLv2 License](https://img.shields.io/github/license/10up/classifai.svg)](https://github.com/10up/classifai/blob/develop/LICENSE.md) [![WordPress Playground Demo](https://img.shields.io/badge/Playground_Demo-8A2BE2?logo=wordpress&logoColor=FFFFFF&labelColor=3858E9&color=3858E9)](https://playground.wordpress.net/?blueprint-url=https://raw.githubusercontent.com/10up/classifai/develop/.github/blueprints/blueprint.json) [![E2E Testing](https://github.com/10up/classifai/actions/workflows/cypress.yml/badge.svg)](https://github.com/10up/classifai/actions/workflows/cypress.yml) [![PHPUnit Testing](https://github.com/10up/classifai/actions/workflows/phpunit.yml/badge.svg)](https://github.com/10up/classifai/actions/workflows/phpunit.yml) [![Linting](https://github.com/10up/classifai/actions/workflows/phpcs.yml/badge.svg)](https://github.com/10up/classifai/actions/workflows/phpcs.yml) [![VIPCS](https://github.com/10up/classifai/actions/workflows/vipcs.yml/badge.svg)](https://github.com/10up/classifai/actions/workflows/vipcs.yml) [![CodeQL](https://github.com/10up/classifai/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/10up/classifai/actions/workflows/codeql-analysis.yml) [![Dependency Review](https://github.com/10up/classifai/actions/workflows/dependency-review.yml/badge.svg)](https://github.com/10up/classifai/actions/workflows/dependency-review.yml) > Supercharge WordPress Content Workflows and Engagement with Artificial Intelligence. *You can learn more about ClassifAI's features at [ClassifAIPlugin.com](https://classifaiplugin.com/) and documentation at the [ClassifAI documentation site](https://10up.github.io/classifai/).* ## Overview Tap into leading cloud-based services like [OpenAI](https://openai.com/), [Microsoft Azure AI](https://azure.microsoft.com/en-us/overview/ai-platform/), [Google Gemini](https://ai.google.dev/) and [IBM Watson](https://www.ibm.com/watson) to augment your WordPress-powered websites. Publish content faster while improving SEO performance and increasing audience engagement. ClassifAI integrates Artificial Intelligence and Machine Learning technologies to lighten your workload and eliminate tedious tasks, giving you more time to create original content that matters. ## Features * Generate a summary of post content and store it as an excerpt using [OpenAI's ChatGPT API](https://platform.openai.com/docs/guides/chat), [Microsoft Azure's OpenAI service](https://azure.microsoft.com/en-us/products/ai-services/openai-service), [Google's Gemini API](https://ai.google.dev/docs/gemini_api_overview), [xAI's Grok](https://x.ai/) or locally using [Ollama](https://ollama.com/) * Generate key takeaways from post content and render at the top of a post using [OpenAI's ChatGPT API](https://platform.openai.com/docs/guides/chat), [Microsoft Azure's OpenAI service](https://azure.microsoft.com/en-us/products/ai-services/openai-service) or locally using [Ollama](https://ollama.com/) * Generate titles from post content using [OpenAI's ChatGPT API](https://platform.openai.com/docs/guides/chat), [Microsoft Azure's OpenAI service](https://azure.microsoft.com/en-us/products/ai-services/openai-service), [Google's Gemini API](https://ai.google.dev/docs/gemini_api_overview), [xAI's Grok](https://x.ai/) or locally using [Ollama](https://ollama.com/) * Expand or condense text content using [OpenAI's ChatGPT API](https://platform.openai.com/docs/guides/chat), [Microsoft Azure's OpenAI service](https://azure.microsoft.com/en-us/products/ai-services/openai-service), [Google's Gemini API](https://ai.google.dev/docs/gemini_api_overview), [xAI's Grok](https://x.ai/) or locally using [Ollama](https://ollama.com/) * Draft a full length article using [OpenAI's ChatGPT API](https://platform.openai.com/docs/guides/chat), [Microsoft Azure's OpenAI service](https://azure.microsoft.com/en-us/products/ai-services/openai-service) or locally using [Ollama](https://ollama.com/) * Generate new images on demand to use in-content or as a featured image using [OpenAI's Image Generation API](https://platform.openai.com/docs/guides/images-vision), [Google AI's Imagen API](https://ai.google.dev/gemini-api/docs/image-generation#imagen), [Together AI's API](https://docs.together.ai/docs/images-overview) or locally using [Stable Diffusion](https://github.com/AUTOMATIC1111/stable-diffusion-webui/) * Generate transcripts of audio files using [OpenAI's Audio Transcription API](https://platform.openai.com/docs/guides/speech-to-text) or [ElevenLabs Speech to Text API](https://elevenlabs.io/docs/capabilities/speech-to-text) * Moderate incoming comments for sensitive content using [OpenAI's Moderation API](https://platform.openai.com/docs/guides/moderation) * Convert text content into audio and output a "read-to-me" feature on the front-end to play this audio using [Microsoft Azure's Text to Speech API](https://learn.microsoft.com/en-us/azure/cognitive-services/speech-service/text-to-speech), [Amazon Polly](https://aws.amazon.com/polly/), [OpenAI's Text to Speech API](https://platform.openai.com/docs/guides/text-to-speech) or [ElevenLabs' Text to Speech API](https://elevenlabs.io/docs/capabilities/text-to-speech) * Classify post content using [IBM Watson's Natural Language Understanding API](https://www.ibm.com/watson/services/natural-language-understanding/), [OpenAI's Embedding API](https://platform.openai.com/docs/guides/embeddings), [Microsoft Azure's OpenAI service](https://azure.microsoft.com/en-us/products/ai-services/openai-service) or locally using [Ollama](https://ollama.com/) * Create a smart 404 page that has a recommended results section that suggests relevant content to the user based on the page URL they were trying to access using either [OpenAI's Embedding API](https://platform.openai.com/docs/guides/embeddings) or [Microsoft Azure's OpenAI service](https://azure.microsoft.com/en-us/products/ai-services/openai-service) in combination with [ElasticPress](https://github.com/10up/ElasticPress) * Find similar terms to merge together using either [OpenAI's Embedding API](https://platform.openai.com/docs/guides/embeddings) or [Microsoft Azure's OpenAI service](https://azure.microsoft.com/en-us/products/ai-services/openai-service) in combination with [ElasticPress](https://github.com/10up/ElasticPress). Note this only compares top-level terms and if you merge a term that has children, these become top-level terms as per default WordPress behavior * Suggest related content based on the currently viewed post using [OpenAI's Embedding API](https://platform.openai.com/docs/guides/embeddings) * Generate image alt text using [Microsoft Azure's AI Vision API](https://azure.microsoft.com/en-us/services/cognitive-services/computer-vision/), [OpenAI's ChatGPT API](https://platform.openai.com/docs/guides/chat), [xAI's Grok](https://x.ai/) or locally using [Ollama](https://ollama.com/) * Generate image tags and extract text from images using [Microsoft Azure's AI Vision API](https://azure.microsoft.com/en-us/services/cognitive-services/computer-vision/), [OpenAI's ChatGPT API](https://platform.openai.com/docs/guides/chat) or locally using [Ollama](https://ollama.com/) * Smartly crop images using [Microsoft Azure's AI Vision API](https://azure.microsoft.com/en-us/services/cognitive-services/computer-vision/) * Scan PDF files for embedded text and save for use in post meta using [Microsoft Azure's AI Vision API](https://azure.microsoft.com/en-us/services/cognitive-services/computer-vision/) * Bulk classify content with [WP-CLI](https://wp-cli.org/) * Modification of your `robots.txt` file to block the most common AI data scraping bots from indexing your site * Use [built-in filters to override AI credentials](https://10up.github.io/classifai/advanced-docs/programmatic-credentials), allowing management of credentials outside of the database, such as by using environment variables or a specific secret management service ### Language Processing | Tagging | Recommended Content | Excerpt Generation | Comment Moderation | | :-: | :-: | :-: | :-: | | ![Screenshot of ClassifAI post tagging](assets/img/screenshot-1.png "Example of a Block Editor post with Watson Categories, Keywords, Concepts, and Entities.") | ![Screenshot of ClassifAI recommended content](assets/img/screenshot-2.png "Example of a Recommended Content Block.") | ![Screenshot of ClassifAI excerpt generation](assets/img/screenshot-7.png "Example of automatic excerpt generation with OpenAI.") | ![Screenshot of ClassifAI comment moderation](assets/img/screenshot-13.png "Example of automatic comment moderation with OpenAI.") | | Audio Transcripts | Title Generation | Expand or Condense Text | Text to Speech | | :-: | :-: | :-: | :-: | | ![Screenshot of ClassifAI audio transcript generation](assets/img/screenshot-9.png "Example of automatic audio transcript generation with OpenAI.") | ![Screenshot of ClassifAI title generation](assets/img/screenshot-10.png "Example of automatic title generation with OpenAI.") | ![Screenshot of ClassifAI expand/condense text feature](assets/img/screenshot-12.png "Example of expanding or condensing text with OpenAI.") | ![Screenshot of ClassifAI text to speech generation](assets/img/screenshot-11.png "Example of automatic text to speech generation with Azure.") | | Key Takeaways | Content Generation | | | | :-: | :-: | :-: | :-: | | ![Screenshot of the ClassifAI Key Takeaways block](assets/img/screenshot-14.png "Example of generating key takeaways using OpenAI.") | ![Screenshot of the ClassifAI Content Generation Feature](assets/img/screenshot-15.png "Example of generating content using OpenAI.") | | | ### Image Processing | Alt Text | Smart Cropping | Tagging | Generate Images | | :-: | :-: | :-: | :-: | | ![Screenshot of ClassifAI alt-text](assets/img/screenshot-3.png "Example of an image with Azure Alt Text.") | ![Screenshot of ClassifAI smart coppring](assets/img/screenshot-4.png "Example of an image with Azure Smart Focal Point Cropping.") | ![Screenshot of ClassifAI image tagging](assets/img/screenshot-5.png "Example of an image with Azure Image Tagging.") | ![Screenshot of ClassifAI image generation](assets/img/screenshot-8.png "Example of generating an image using OpenAI.") | ## Requirements * PHP 7.4+ * [WordPress](http://wordpress.org) 6.9+ * Each individual Feature may have its own requirements, please refer to the [ClassifAI documentation site](https://10up.github.io/classifai/get-started/#requirements) for detailed requirements. ## Pricing Note that there is no cost to using ClassifAI itself. For detailed pricing information, please refer to the [ClassifAI documentation site](https://10up.github.io/classifai/get-started/pricing). ## Installation Detailed installation instructions can be found on the [ClassifAI documentation site](https://10up.github.io/classifai/get-started/installation). ## Register ClassifAI account ClassifAI is a sophisticated solution that we want organizations of all shapes and sizes to count on. To keep adopters apprised of major updates and beta testing opportunities, gather feedback, support auto updates, and prioritize common use cases, we're asking for a little bit of information in exchange for a free key. Your information will be kept confidential. For detailed instructions on how to register for a ClassifAI account, please refer to the [ClassifAI documentation site](https://10up.github.io/classifai/get-started/register-account). ## Set up Features ClassifAI implements a variety of Features that can be configured and used to augment your WordPress-powered websites. For detailed instructions on how to set up each Feature, please refer to the [ClassifAI documentation site](https://10up.github.io/classifai/feature-configuration). If you want to more securely manage credentials for a specific Feature, you can use the [built-in filters to override AI credentials](https://10up.github.io/classifai/advanced-docs/programmatic-credentials). ## Run locally hosted LLMs Some of the Features in ClassifAI can be set up to use locally hosted LLMs. This has the benefit of complete privacy and data control, as well as being able to be run without any cost. The trade-offs here are performance isn't as great and results may also be less accurate. For full instructions on how to set up locally hosted LLMs, please refer to the [ClassifAI documentation site](https://10up.github.io/classifai/advanced-docs/run-locally-hosted-llms). ## WP CLI Commands Check out the [ClassifAI docs](https://10up.github.io/classifai/advanced-docs/wp-cli) for instructions on how to use the WP CLI commands. ## Frequently Asked Questions For a full list of frequently asked questions, please refer to the [ClassifAI documentation site](https://10up.github.io/classifai/get-started/faq). ### Where do I report security bugs found in this plugin? Please report security bugs found in the source code of the undefined plugin through the [Patchstack Vulnerability Disclosure  Program](https://patchstack.com/database/vdp/f298c330-8d56-4af5-8a69-736281841ce1). The Patchstack team will assist you with verification, CVE assignment, and notify the developers of this plugin. ## Building and Running Documentation Site The ClassifAI documentation site is built using [WP Hooks Documentor](https://github.com/10up/wp-hooks-documentor). Follow these steps to build and run the documentation site locally: ### 1. Build Documentation ```bash # Install dependencies and build the plugin npm i && npm run build:docs ``` This will: * Install all required dependencies * Process all hook documentation from the codebase * Generate the documentation site in the `./docs` directory ### 2. Run Documentation Site Locally ```bash # Navigate to docs directory and start the server cd ./docs && npm run serve ``` The documentation site will be available at [http://localhost:3000](http://localhost:3000). ### 3. Deployment The documentation site will automatically deploy to GitHub Pages when changes are merged into the `trunk` branch. You can view the live documentation at [https://10up.github.io/classifai/](https://10up.github.io/classifai/). ## Support Level **Active:** 10up is actively working on this, and we expect to continue work for the foreseeable future including keeping tested up to the most recent version of WordPress. Bug reports, feature requests, questions, and pull requests are welcome. ## Changelog A complete listing of all notable changes to ClassifAI are documented in [CHANGELOG.md](https://github.com/10up/classifai/blob/develop/CHANGELOG.md). ## Contributing Please read [CODE_OF_CONDUCT.md](https://github.com/10up/classifai/blob/develop/CODE_OF_CONDUCT.md) for details on our code of conduct, [CONTRIBUTING.md](https://github.com/10up/classifai/blob/develop/CONTRIBUTING.md) for details on the process for submitting pull requests to us, and [CREDITS.md](https://github.com/10up/classifai/blob/develop/CREDITS.md) for a listing of maintainers, contributors, and libraries for ClassifAI. ## Like what you see? [![Work with the 10up WordPress Practice at Fueled](https://github.com/10up/.github/blob/trunk/profile/10up-github-banner.jpg)](http://10up.com/contact/)

WordPress Themes & Plugins
704 Github Stars
safe-redirect-manager
Open Source

safe-redirect-manager

# Safe Redirect Manager ![Safe Redirect Manager](https://github.com/10up/safe-redirect-manager/blob/develop/.wordpress-org/banner-1544x500.png) [![Support Level](https://img.shields.io/badge/support-stable-blue.svg)](#support-level) ![Required PHP Version](https://img.shields.io/wordpress/plugin/required-php/safe-redirect-manager?label=Requires%20PHP) ![Required WP Version](https://img.shields.io/wordpress/plugin/wp-version/safe-redirect-manager?label=Requires%20WordPress) ![WordPress tested up to version](https://img.shields.io/wordpress/plugin/tested/safe-redirect-manager?color=%2346B450&label=WordPress&logo=WordPress&logoColor=%230073AA) [![GPLv2 License](https://img.shields.io/github/license/10up/safe-redirect-manager.svg)](https://github.com/10up/safe-redirect-manager/blob/develop/LICENSE.md) [![Dependency Review](https://github.com/10up/safe-redirect-manager/actions/workflows/dependency-review.yml/badge.svg)](https://github.com/10up/safe-redirect-manager/actions/workflows/dependency-review.yml) [![E2E test](https://github.com/10up/safe-redirect-manager/actions/workflows/cypress.yml/badge.svg)](https://github.com/10up/safe-redirect-manager/actions/workflows/cypress.yml) [![PHPUnit](https://github.com/10up/safe-redirect-manager/actions/workflows/phpunit.yml/badge.svg)](https://github.com/10up/safe-redirect-manager/actions/workflows/phpunit.yml) [![Linting](https://github.com/10up/safe-redirect-manager/actions/workflows/lint.yml/badge.svg)](https://github.com/10up/safe-redirect-manager/actions/workflows/lint.yml) [![PHPCS](https://github.com/10up/safe-redirect-manager/actions/workflows/phpcs.yml/badge.svg)](https://github.com/10up/safe-redirect-manager/actions/workflows/phpcs.yml) [![PHPCompatibility](https://github.com/10up/safe-redirect-manager/actions/workflows/php-compatibility.yml/badge.svg)](https://github.com/10up/safe-redirect-manager/actions/workflows/php-compatibility.yml) [![CodeQL](https://github.com/10up/safe-redirect-manager/actions/workflows/github-code-scanning/codeql/badge.svg)](https://github.com/10up/safe-redirect-manager/actions/workflows/github-code-scanning/codeql) [![WordPress Playground Demo](https://img.shields.io/wordpress/plugin/v/safe-redirect-manager?logo=wordpress&logoColor=FFFFFF&label=Playground%20Demo&labelColor=3858E9&color=3858E9)](https://playground.wordpress.net/?blueprint-url=https://raw.githubusercontent.com/10up/safe-redirect-manager/add/playground/.wordpress-org/blueprints/blueprint.json) > A WordPress plugin to safely manage your website's HTTP redirects. ## Purpose Safely manage your site's redirects the WordPress way. There are many redirect plugins available. Most of them store redirects in the options table or in custom tables. Most of them provide tons of unnecessary options. Some of them have serious performance implications (404 error logging). Safe Redirect Manager stores redirects as Custom Post Types. This makes your data portable and your website scalable. Safe Redirect Manager is built to handle enterprise level traffic and is used on major publishing websites. The plugin comes with only what you need following the WordPress mantra, decisions not options. Actions and filters make the plugin very extensible. ## Installation Install the plugin in WordPress. You can download a [zip via GitHub](https://github.com/10up/safe-redirect-manager/archive/trunk.zip) and upload it using the WordPress plugin uploader ("Plugins" > "Add New" > "Upload Plugin"). ## Configuration There are no overarching settings for this plugin. To manage redirects, navigate to the administration panel ("Tools" > "Safe Redirect Manager"). Each redirect contains a few fields that you can utilize: #### "Redirect From" This should be a path relative to the root of your WordPress installation. When someone visits your site with a path that matches this one, a redirect will occur. If your site is located at `http://example.com/wp/` and you wanted to redirect `http://example.com/wp/about` to `http://example.com`, your "Redirect From" would be `/about`. Clicking the "Enable Regex" checkbox allows you to use regular expressions in your path. There are many [great tutorials](http://www.regular-expressions.info) on regular expressions. You can also use wildcards in your "Redirect From" paths. By adding an `*` at the end of a URL, your redirect will match any request that starts with your "Redirect From". Wildcards support replacements. This means if you have a wildcard in your from path that matches a string, you can have that string replace a wildcard character in your "Redirect To" path. For example, if your "Redirect From" is `/test/*`, your "Redirect To" is `http://google.com/*`, and the requested path is `/test/string`, the user would be redirect to `http://google.com/string`. #### "Redirect To" This should be a path (i.e. `/test`) or a URL (i.e. `http://example.com/wp/test`). If a requested path matches "Redirect From", they will be redirected here. "Redirect To" supports wildcard and regular expression replacements. #### "HTTP Status Code" [HTTP status codes](http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html) are numbers that contain information about a request (i.e. whether it was successful, unauthorized, not found, etc). You should almost always use either 302 (temporarily moved) or 301 (permanently moved). *Note:* * Redirects are cached using the Transients API. Cache busts occur when redirects are added, updated, and deleted so you shouldn't be serving stale redirects. * By default the plugin only allows at most 1000 redirects to prevent performance issues. There is a filter `srm_max_redirects` that you can utilize to up this number. * "Redirect From" and requested paths are case insensitive by default. * Developers can use `srm_additional_status_codes` filter to add status codes if needed. * Rules set with 403 and 410 status codes are handled by applying the HTTP status code and render the default WordPress `wp_die` screen with an optional message. * Rules set with a 404 status code will apply the status code and render the 404 template. * Browsers heavily cache 301 (permanently moved) redirects. It's recommended to test your permanent redirects using the 302 (temporarily moved) status code before changing them to 301 permanently moved. ## Filters ### Default redirect status code The default redirect HTTP status code can be changed using the `srm_default_direct_status` filter. ```php add_filter( 'srm_default_direct_status', /** * Set the default redirect status to 301 (Moved Permanently). */ function() { return 301; } ); ``` ### Redirect loops detection By default redirect loop detection is enabled. To disable it, you can use the `srm_check_for_possible_redirect_loops` filter. ```php add_filter( 'srm_check_for_possible_redirect_loops', '__return_false' ); ``` ### Only redirect if 404 occurs By default every matched URL is redirected. To only redirect matched but not found URLs (i.e., 404 pages), use `srm_redirect_only_on_404`. ```php add_filter( 'srm_redirect_only_on_404', '__return_true' ); ``` ## CLI commands The following WP-CLI commands are supported by Safe Redirect Manager: * **`wp safe-redirect-manager list`** List all of the currently configured redirects. * **`wp safe-redirect-manager create <from> <to> [<status-code>] [<enable-regex>] [<post-status>]`** Create a redirect. `<from>` and `<to>` are required parameters. * `<from>`: Redirect from path. Required. * `<to>`: Redirect to path. Required. * `<status-code>`: HTTP Status Code. Optional. Default to `302`. * `<enable-regex>`: Whether to enable Regular expression. Optional. Default to `false`. * `<post-status>`: The status of the redirect. Optional. Default to `publish`. **Example:** `wp safe-redirect-manager create /about-us /contact-us 301` * **`wp safe-redirect-manager delete <id>`** Delete a redirect by `<id>`. * **`wp safe-redirect-manager update-cache`** Update the redirect cache. * **`wp safe-redirect-manager import <file> [--source=<source-column>] [--target=<target-column>] [--regex=<regex-column>] [--code=<code-column>] [--order=<order-column>]`** Imports redirects from a CSV file. * `<file>`: Path to one or more valid CSV file for import. This file should contain redirection from and to URLs, regex flag and HTTP redirection code. Here is the example table: | source | target | regex | code | order | |----------------------------|--------------------|-------|------|-------| | /legacy-url | /new-url | 0 | 301 | 0 | | /category-1 | /new-category-slug | 0 | 302 | 1 | | /tes?t/[0-9]+/path/[^/]+/? | /go/here | 1 | 302 | 3 | | ... | ... | ... | ... | ... | _You can also use exported redirects from "Redirection" plugin, which you can download here: /wp-admin/tools.php?page=redirection.php&sub=modules_ * `--source`: Header title for source ("from" URL) column mapping. * `--target`: Header title for target ("to" URL) column mapping. * `--regex`: Header title for regex column mapping. * `--code`: Header title for code column mapping. * `--order`: Header title for order column mapping. * **`wp safe-redirect-manager import-htaccess <file>`** Import .htaccess file redirects. ## Development #### Setup Follow the configuration instructions above to setup the plugin. We recommend developing the plugin locally in an environment such as [WP Local Docker](https://github.com/10up/wp-local-docker). #### Testing Within the terminal change directories to the plugin folder. Initialize your unit testing environment by running the following command: ```bash bash bin/install-wp-tests.sh database username password host version ``` Run the plugin tests: ```bash phpunit ``` ## Translations Safe Redirect Manager is available in English and other languages. A listing of those languages and instructions for translating the plugin into other languages is available on [Translating WordPress](https://translate.wordpress.org/projects/wp-plugins/safe-redirect-manager/). Many thanks to the [contributors on the translation teams](https://translate.wordpress.org/projects/wp-plugins/safe-redirect-manager/contributors/)! ## Frequently Asked Questions ### Where do I report security bugs found in this plugin? Please report security bugs found in the source code of the Safe Redirect Manager plugin through the [Patchstack Vulnerability Disclosure  Program](https://patchstack.com/database/vdp/3fab514f-46ce-4b71-ab53-450228f73bde). The Patchstack team will assist you with verification, CVE assignment, and notify the developers of this plugin. ## Support Level **Stable:** 10up is not planning to develop any new features for this, but will still respond to bug reports and security concerns. We welcome PRs, but any that include new features should be small and easy to integrate and should not include breaking changes. We otherwise intend to keep this tested up to the most recent version of WordPress. ## Changelog A complete listing of all notable changes to Safe Redirect Manager are documented in [CHANGELOG.md](https://github.com/10up/safe-redirect-manager/blob/develop/CHANGELOG.md). ## Contributing Please read [CODE_OF_CONDUCT.md](https://github.com/10up/safe-redirect-manager/blob/develop/CODE_OF_CONDUCT.md) for details on our code of conduct, [CONTRIBUTING.md](https://github.com/10up/safe-redirect-manager/blob/develop/CONTRIBUTING.md) for details on the process for submitting pull requests to us, and [CREDITS.md](https://github.com/10up/safe-redirect-manager/blob/develop/CREDITS.md) for a listing of maintainers of, contributors to, and libraries used by Safe Redirect Manager. ## Like what you see? <a href="http://10up.com/contact/"><img src="https://github.com/10up/.github/blob/trunk/profile/10up-github-banner.jpg" width="850" alt="Work with the 10up WordPress Practice at Fueled"></a>

Networking & Hosting WordPress Themes & Plugins
321 Github Stars
simple-podcasting
Open Source

simple-podcasting

# Simple Podcasting for WordPress ![Simple Podcasting](https://github.com/10up/simple-podcasting/blob/develop/.wordpress-org/banner-1544x500.png) [![Support Level](https://img.shields.io/badge/support-stable-blue.svg)](#support-level) ![Required PHP Version](https://img.shields.io/wordpress/plugin/required-php/simple-podcasting?label=Requires%20PHP) ![Required WP Version](https://img.shields.io/wordpress/plugin/wp-version/simple-podcasting?label=Requires%20WordPress) ![WordPress tested up to version](https://img.shields.io/wordpress/plugin/tested/simple-podcasting?label=WordPress) [![GPLv2 License](https://img.shields.io/github/license/10up/simple-podcasting.svg)](https://github.com/10up/simple-podcasting/blob/develop/LICENSE.md) [![Dependency Review](https://github.com/10up/simple-podcasting/actions/workflows/dependency-review.yml/badge.svg)](https://github.com/10up/simple-podcasting/actions/workflows/dependency-review.yml) [![E2E Test](https://github.com/10up/simple-podcasting/actions/workflows/cypress.yml/badge.svg)](https://github.com/10up/simple-podcasting/actions/workflows/cypress.yml) [![Unit Tests](https://github.com/10up/simple-podcasting/actions/workflows/phpunit.yml/badge.svg)](https://github.com/10up/simple-podcasting/actions/workflows/phpunit.yml) [![PHPCS](https://github.com/10up/simple-podcasting/actions/workflows/phpcs.yml/badge.svg)](https://github.com/10up/simple-podcasting/actions/workflows/phpcs.yml) [![PHP Compatibility](https://github.com/10up/simple-podcasting/actions/workflows/php-compatibility.yml/badge.svg)](https://github.com/10up/simple-podcasting/actions/workflows/php-compatibility.yml) [![CodeQL](https://github.com/10up/simple-podcasting/actions/workflows/github-code-scanning/codeql/badge.svg)](https://github.com/10up/simple-podcasting/actions/workflows/github-code-scanning/codeql) [![WordPress Playground Demo](https://img.shields.io/wordpress/plugin/v/simple-podcasting?logo=wordpress&logoColor=FFFFFF&label=Playground%20Demo&labelColor=3858E9&color=3858E9)](https://playground.wordpress.net/?blueprint-url=https://raw.githubusercontent.com/10up/simple-podcasting/add/playground/.wordpress-org/blueprints/blueprint.json) > Easily set up multiple podcast feeds using built-in WordPress posts. Includes a podcast block and podcast transcript block for the WordPress block editor (aka Gutenberg). ## Overview Podcasting is a method to distribute audio messages through a feed to which listeners can subscribe. You can publish podcasts on your WordPress site and make them available for listeners in Apple Podcasts and through direct feed links for other podcasting apps by following these steps: ![Screenshot of podcast block](.wordpress-org/screenshot-1.png "Example of a podcast block in the new WordPress editor") ## Requirements * PHP 7.4+ * [WordPress](http://wordpress.org) 6.6+ * RSS feeds must not be disabled ## Installation 1. Install the plugin via the plugin installer, either by searching for it or uploading a .zip file. 2. Activate the plugin. 3. Head to Posts → Podcasts and add at least one podcast. 4. Create a post and insert an audio embed (or a podcast block in the new WordPress editor) and select a Podcast feed to include it in. ## Create your podcast From the WordPress Admin, go to Podcasts. To create a podcast, complete all of the "Add New Podcast" fields and click "Add New Podcast". * Name: this title appears in Apple Podcasts and any other podcast apps. * Slug: this is the URL-friendly version of the Name field. * Subtitle: the subtitle also appears in Apple Podcasts and any other podcast apps. * Artist / Author name: the artist or producer of the work. * Podcast email: a contact email address for your podcast. * Summary: Apple Podcasts displays this summary when browsing through podcasts. * Copyright / License information: copyright information viewable in Apple Podcasts or other podcast apps. * Mark as explicit: mark Yes if podcast contains adult language or adult themes. * Language: the main language spoken in the podcast. * Cover image: add the URL for the cover art to appear in Apple Podcasts and other podcast apps. Click "Select Image" and choose an image from the Media Library. Note that podcast cover images must be between 1400 x 1400 and 3000 x 3000 pixels in JPG or PNG formats to work on Apple Podcasts. * Keywords: add terms to help your podcast show up in search results on Apple Podcasts and other podcast apps. * Categories: these allow your podcast to show up for those browsing Apple Podcasts or other podcast apps by category. Repeat for each podcast you would like to create. ## Add content to your podcast * Create a new post and assign it to one or more Podcasts using the panel labeled Podcasts. * Upload or embed an audio file into this post using any of the usual WordPress methods. If using the new block-based WordPress editor (sometimes referred to as Gutenberg), insert a Podcast block. Only one Podcast block can be inserted per post. * For more advanced settings, use the Podcasting meta box to mark explicit content or closed captioning available, season number, episode number, episode type, add a transcript and to optionally specify one media item in the post if you have more than one in your post. In the block-based editor, these are the block settings that appear in the sidebar when the podcast block is selected. * Transcript: If desired, an optional transcript can be added from the settings of the Podcast block. This will add a Podcast Transcript block, allowing you to add a transcript consisting of time codes, citations, and paragrah text that can be embedded in the post, linked to an external plain HTML file, or linked in a special `<podcast:transcript>` XML element. ## Submit your podcast feed to Apple Podcasts * Each podcast has a unique feed URL you can find on the Podcasts page. This is the URL you will submit to Apple. * Ensure you test feeds before submitting them, see https://help.apple.com/itc/podcasts_connect/#/itcac471c970. * Once the validator passes, submit your podcast. Podcasts submitted to Apple Podcasts do not become immediately available for subscription by others. They are submitted for review by Apple staff, see https://help.apple.com/itc/podcasts_connect/#/itcd88ea40b9 Podcast setup | Podcast in block editor | Podcast feed ------------- | ----------------- | ------------ [![Podcast setup](.wordpress-org/screenshot-3.png)](.wordpress-org/screenshot-3.png) | [![Podcast in editor](.wordpress-org/screenshot-1.png)](.wordpress-org/screenshot-1.png) | [![Podcast feed](.wordpress-org/screenshot-4.png)](.wordpress-org/screenshot-4.png) Podcast Platforms block | Podcast Grid pattern | Podcast Transcript block ------------- | ----------------- | ------------ [![Podcast Platforms block](.wordpress-org/screenshot-2.png)](.wordpress-org/screenshot-2.png) | [![Podcast Grid pattern](.wordpress-org/screenshot-5.png)](.wordpress-org/screenshot-5.png) | [![Podcast Transcript block](.wordpress-org/screenshot-6.png)](.wordpress-org/screenshot-6.png) ## Submit your podcast feed to Pocket Casts * Validate your feeds at [Cast Feed Validator](https://www.castfeedvalidator.com/) before submitting them. * Submit the podcast feed to https://pocketcasts.com/submit/ ## Control how many episodes are listed on the feed If you want to adjust the default number of episodes included in a podcast RSS feed, then utilize the following to do so... ```php <?php add_filter( 'simple_podcasting_episodes_per_page', 'podcasting_feed_episodes_per_page' ); /** * Filter how many items are displayed on the feed * Default is 250 * * @param int $qty Items count. * @return string */ function podcasting_feed_episodes_per_page( $qty ) { return 300; } ``` ## Customize the RSS feed title The `<title>` element of the RSS feed can be adjusted using the `simple_podcasting_feed_title` filter. ```php <?php add_filter( 'simple_podcasting_feed_title', 'podcasting_feed_update_feed_title', 10, 2 ); /** * Filter the name of the of the feed channel * * @param $output Output to be modified. * @param $term WP_Term object representing the podcast * @return string */ function podcasting_feed_update_feed_title( $output, $term ) { $term_name = $term->name; return '10up Presents: ' . $term_name; } ``` ## Customize RSS feed If you want to modify RSS feed items output, there is a filter for that: ```php <?php function podcasting_feed_item_filter( $feed_item = array(), $post_id = null, $term_id = null ) { if ( 42 === $post_id ) { $feed_item['keywords'] = 'one,two,three'; } return $feed_item; } add_filter( 'simple_podcasting_feed_item', 'podcasting_feed_item_filter', 10, 3 ); ``` ## Frequently Asked Questions ### How do I get my podcast featured on Pocket Casts? The Featured section of Pocket Casts is human-curated. To ensure that all podcasts have an equal opportunity at being featured, selections are made on the basis of merit. If you’d like to suggest your podcast for a featured spot, reach out to [email protected]. For more information, [read more](https://pocketcasts.com/podcast-producers/). ### How do I submit private and paid podcast feeds? Follow this documentation to submit [private and paid podcast feeds](https://support.pocketcasts.com/article/password-protected-podcasts-2/) ### Where do I report security bugs found in this plugin? Please report security bugs found in the source code of the Simple Podcasting plugin through the [Patchstack Vulnerability Disclosure  Program](https://patchstack.com/database/vdp/0d49ba54-688e-484d-9411-4716696aa79b). The Patchstack team will assist you with verification, CVE assignment, and notify the developers of this plugin. ## Support Level **Stable:** 10up is not planning to develop any new features for this, but will still respond to bug reports and security concerns. We welcome PRs, but any that include new features should be small and easy to integrate and should not include breaking changes. We otherwise intend to keep this tested up to the most recent version of WordPress. ## Changelog A complete listing of all notable changes to Simple Podcasting for WordPress are documented in [CHANGELOG.md](https://github.com/10up/simple-podcasting/blob/develop/CHANGELOG.md). ## Contributing Please read [CODE_OF_CONDUCT.md](https://github.com/10up/simple-podcasting/blob/develop/CODE_OF_CONDUCT.md) for details on our code of conduct, [CONTRIBUTING.md](https://github.com/10up/simple-podcasting/blob/develop/CONTRIBUTING.md) for details on the process for submitting pull requests to us, and [CREDITS.md](https://github.com/10up/simple-podcasting/blob/develop/CREDITS.md) for a listing of maintainers of, contributors to, and libraries used by Simple Podcasting for WordPress. ## Like what you see? <a href="http://10up.com/contact/"><img src="https://github.com/10up/.github/blob/trunk/profile/10up-github-banner.jpg" width="850" alt="Work with the 10up WordPress Practice at Fueled"></a>

WordPress Themes & Plugins Podcast Tools
213 Github Stars
ads-txt
Open Source

ads-txt

# Ads.txt Manager for WordPress ![Ads.txt Manager for WordPress](https://github.com/10up/ads-txt/blob/develop/.wordpress-org/banner-1544x500.png) [![Support Level](https://img.shields.io/badge/support-stable-blue.svg)](#support-level) ![Required PHP Version](https://img.shields.io/wordpress/plugin/required-php/ads-txt?label=Requires%20PHP) ![Required WP Version](https://img.shields.io/wordpress/plugin/wp-version/ads-txt?label=Requires%20WordPress) ![WordPress tested up to version](https://img.shields.io/wordpress/plugin/tested/ads-txt?label=WordPress) [![GPLv2 License](https://img.shields.io/github/license/10up/ads-txt.svg)](https://github.com/10up/ads-txt/blob/develop/LICENSE.md) [![Dependency Review](https://github.com/10up/ads-txt/actions/workflows/dependency-review.yml/badge.svg)](https://github.com/10up/ads-txt/actions/workflows/dependency-review.yml) [![End-to-end Tests](https://github.com/10up/ads-txt/actions/workflows/cypress.yml/badge.svg)](https://github.com/10up/ads-txt/actions/workflows/cypress.yml) [![Unit Tests](https://github.com/10up/ads-txt/actions/workflows/phpunit.yml/badge.svg)](https://github.com/10up/ads-txt/actions/workflows/phpunit.yml) [![Lint PHP](https://github.com/10up/ads-txt/actions/workflows/lint-php.yml/badge.svg)](https://github.com/10up/ads-txt/actions/workflows/lint-php.yml) [![PHP Compatibility](https://github.com/10up/ads-txt/actions/workflows/php8-compatibility.yml/badge.svg)](https://github.com/10up/ads-txt/actions/workflows/php8-compatibility.yml) [![CodeQL](https://github.com/10up/ads-txt/actions/workflows/github-code-scanning/codeql/badge.svg)](https://github.com/10up/ads-txt/actions/workflows/github-code-scanning/codeql) [![WordPress Playground Demo](https://img.shields.io/wordpress/plugin/v/ads-txt?logo=wordpress&logoColor=FFFFFF&label=Playground%20Demo&labelColor=3858E9&color=3858E9)](https://playground.wordpress.net/?blueprint-url=https://raw.githubusercontent.com/10up/ads-txt/develop/.wordpress-org/blueprints/blueprint.json) > Create, manage, and validate your ads.txt and app-ads.txt from within WordPress, like any other content asset. ## Features ![Screenshot of ads.txt editor](.wordpress-org/screenshot-1.png "Example of editing an ads.txt file with errors and a link to browse ads.txt file revisions.") [Ads.txt](https://iabtechlab.com/ads-txt/) is an initiative by the Interactive Advertising Bureau to enable publishers to take control over who can sell their ad inventory. Through our work at 10up with various publishers, we've created a way to manage and validate your ads.txt file from within WordPress, eliminating the need to upload a file. The validation baked into the plugin helps avoid malformed records, which can cause issues that end up cached for up to 24 hours and can lead to a drop in ad revenue. ### What about ads.cert? We're closely monitoring continued developments in the ad fraud space, and see this plugin as not only a way to create and manage your ads.txt file but also be prepared for future changes and upgrades to specifications. ads.cert is still in the extremely early stages so we don't see any immediate concerns with implementing ads.txt. ### Can I use this with multisite? Yes! However, if you are using a subfolder installation it will only work for the main site. This is because you can only have one ads.txt for a given domain or subdomain per the [ads.txt spec](https://iabtechlab.com/ads-txt/). Our recommendation is to only activate Ads.txt Manager per-site. ## Requirements * Requires PHP 7.4+. * Requires WordPress 6.6+. * Ad blockers may break syntax highlighting and pre-save error checking on the edit screen. See [#20](https://github.com/10up/ads-txt/issues/20). * Rewrites need to be enabled. Without rewrites, WordPress cannot know to supply `/ads.txt` when requested. * Your site URL must not contain a path (e.g. `https://example.com/site/` or path-based multisite installs). While the plugin will appear to function in the admin, it will not display the contents at `https://example.com/site/ads.txt`. This is because the plugin follows the IAB spec, which requires that the ads.txt file be located at the root of a domain or subdomain. ## Installation 1. Install the plugin via the plugin installer, either by searching for it or uploading a .zip file. 1. Activate the plugin. 1. Head to Settings → Ads.txt or App-ads.txt and add the records you need. 1. Check it out at yoursite.com/ads.txt or yoursite.com/app-ads.txt! Note: If you already have an existing ads.txt or app-ads.txt file in the web root, the plugin will not read in the contents of the respective files, and changes you make in WordPress admin will not overwrite contents of the physical files. You will need to rename or remove the existing (app-)ads.txt file (keeping a copy of the records it contains to put into the new settings screen) before you will be able to see any changes you make to (app-)ads.txt inside the WordPress admin. ## Frequently Asked Questions ### Where do I report security bugs found in this plugin? Please report security bugs found in the source code of the Ads.txt Manager plugin through the [Patchstack Vulnerability Disclosure  Program](https://patchstack.com/database/vdp/6f8c7990-9291-4a21-a0f1-289c90187b84). The Patchstack team will assist you with verification, CVE assignment, and notify the developers of this plugin. ## Screenshots ### 1. Example of editing an ads.txt file with errors and a link to browse ads.txt file revisions. ![Screenshot of ads.txt editor](.wordpress-org/screenshot-1.png "Example of editing an ads.txt file with errors and a link to browse ads.txt file revisions.") ### 2. Example of comparing ads.txt file revisions. ![Screenshot of ads.txt in Revisions editor](.wordpress-org/screenshot-2.png "Example of comparing ads.txt file revisions.") ### 3. Example of comparing two disparate ads.txt file revisions. ![Screenshot of ads.txt in Revisions editor](.wordpress-org/screenshot-3.png "Example of comparing two disparate ads.txt file revisions.") ## Support Level **Stable:** 10up is not planning to develop any new features for this, but will still respond to bug reports and security concerns. We welcome PRs, but any that include new features should be small and easy to integrate and should not include breaking changes. We otherwise intend to keep this tested up to the most recent version of WordPress. ## Changelog A complete listing of all notable changes to Ads.txt Manager are documented in [CHANGELOG.md](CHANGELOG.md). ## Contributing Please read [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md) for details on our code of conduct, [CONTRIBUTING.md](CONTRIBUTING.md) for details on the process for submitting pull requests to us, and [CREDITS.md](CREDITS.md) for a listing of maintainers of, contributors to, and libraries used by Ads.txt Manager. ## Like what you see? <a href="http://10up.com/contact/"><img src="https://github.com/10up/.github/blob/trunk/profile/10up-github-banner.jpg" width="850" alt="Work with the 10up WordPress Practice at Fueled"></a>

WordPress Themes & Plugins SEO Tools
62 Github Stars
block-catalog
Open Source

block-catalog

# Block Catalog ![Block Catalog](https://github.com/10up/block-catalog/blob/develop/.wordpress-org/banner-1544x500.png) [![Support Level](https://img.shields.io/badge/support-stable-blue.svg)](#support-level) ![WordPress Plugin Required PHP Version](https://img.shields.io/wordpress/plugin/required-php/block-catalog?label=Requires%20PHP) ![WordPress Plugin: Required WP Version](https://img.shields.io/wordpress/plugin/wp-version/block-catalog?label=Requires%20WordPress) ![WordPress Plugin: Tested WP Version](https://img.shields.io/wordpress/plugin/tested/block-catalog?label=WordPress) [![GPL-2.0-or-later License](https://img.shields.io/github/license/10up/block-catalog.svg)](https://github.com/10up/block-catalog/blob/develop/LICENSE.md) [![Dependency Review](https://github.com/10up/block-catalog/actions/workflows/dependency-review.yml/badge.svg)](https://github.com/10up/block-catalog/actions/workflows/dependency-review.yml) [![WordPress Plugin Version](https://img.shields.io/wordpress/plugin/v/block-catalog?logo=wordpress&logoColor=FFFFFF&label=Playground%20Demo&labelColor=3858E9&color=3858E9)](https://playground.wordpress.net/?blueprint-url=https://raw.githubusercontent.com/10up/block-catalog/develop/.wordpress-org/blueprints/blueprint.json) [![PHPUnit](https://github.com/10up/block-catalog/actions/workflows/phpunit.yml/badge.svg)](https://github.com/10up/block-catalog/actions/workflows/phpunit.yml) [![PHP Linting](https://github.com/10up/block-catalog/actions/workflows/phpcs.yml/badge.svg)](https://github.com/10up/block-catalog/actions/workflows/phpcs.yml) [![JS Linting](https://github.com/10up/block-catalog/actions/workflows/eslint.yml/badge.svg)](https://github.com/10up/block-catalog/actions/workflows/eslint.yml) [![PHP Compatibility](https://github.com/10up/block-catalog/actions/workflows/php-compat.yml/badge.svg)](https://github.com/10up/block-catalog/actions/workflows/php-compat.yml) [![CodeQL](https://github.com/10up/block-catalog/actions/workflows/github-code-scanning/codeql/badge.svg)](https://github.com/10up/block-catalog/actions/workflows/github-code-scanning/codeql) > Keep track of which Gutenberg Blocks are used across your site. ## Features - Find which blocks are used across your site. - Fully Integrated with the WordPress Admin. - Use filters to see Posts that use a specific block. - Find Posts that use Reusable Blocks. - Use the WP CLI to quickly find blocks from the command line. - Use custom WordPress filters to extend the Block Catalog. - Find block usage on a Multisite network. - Export block catalog data to a CSV file via the WP CLI. ## Installation - Block Catalog can be installed like any other plugin from the [WordPress.org plugin directory](https://wordpress.org/plugins/block-catalog). - You can also install the plugin manually by [downloading a zip file](https://github.com/10up/block-catalog/releases/latest). - To install the plugin using [composer](https://getcomposer.org) and [wpackagist](https://wpackagist.org/), add the following to your composer.json. ```json "wpackagist-plugin/block-catalog":"~1.3.1" ``` ## Getting Started On activation, the plugin will prompt you to index your content. You need to do this first before you will be able to see the various blocks used on your site. You can also go to _WP-Admin > Tools > Block Catalog_ to do this yourself. ![Screenshot of Block Catalog Tools](.wordpress-org/screenshot-1.png) Alternately, you can run the WP CLI command `wp block-catalog index` to index your content from the command line. Once indexed, you will be able to see the different blocks used on your site in the Block Catalog Taxonomy. ![Screenshot of Block Catalog Terms](.wordpress-org/screenshot-2.png) Navigating to any Block Editor post type will also show you the list of blocks present in a post. ![Screenshot of Post listing with Blocks](.wordpress-org/screenshot-3.png) You can also filter the listing to only show Posts that have a specific block. ![Screenshot of Block Catalog Filter](.wordpress-org/screenshot-4.png) ## WP CLI Commands The following WP CLI commands are supported by the Block Catalog plugin. - `wp block-catalog index [--only=<only>] [--dry-run]` Iterates through all posts and catalogs them one at a time. - [--reset] Deletes the previous index before starting. - [--only=\<only\>] Limits the command to the specified comma delimited post ids. - [--network=\<network\>] Indexes the entire network. Accepts a comma delimited list of child site ids. - [--dry-run] Runs catalog without saving changes to the DB. - `wp block-catalog find <blocks>... [--index] [--fields] [--format] [--post_type] [--posts_per_page] [--post_status] [--count=<count>] [--operator=<operator>]` Finds the list of posts having the specified block(s) - \<blocks\>... The block names to search for, eg:- core/embed - [--index] Whether to re-index before searching. - [--fields=\<fields\>] List of post fields to display. - [--format=\<format\>] Output format, default table. - [--post_type=\<post_type\>] Limit search to specified post types. - [--posts_per_page=\<posts_per_page\>] Number of posts to find per page, default 20 - [--post_status=\<post_status\>] Post status of posts to search, default 'publish' - [--count=\<count\>] Prints total found posts, default true. When combined with `--network` prints an aggregate across the multisite. - [--operator=\<operator\>] The query operator to be used in the search clause. Default IN. - [--network=\<network\>] Searches across the entire network if on multisite. Accepts a comma delimited list of child site ids. - `wp block-catalog delete-index` Resets the Block Catalog by removing all catalog terms. - [--network=\<network\>] Deletes the indexes across the entire network. Accepts a comma delimited list of child site ids. - `wp block-catalog post-blocks <post-id> [--index]` Prints the list of blocks in the specified post. - \<post-id\> The post id to lookup blocks for. - `wp block-catalog export [--output=<output>] [--post_type=<types>] [--posts_per_block=<number>] [--ignore_parent=<ignore_parent>]` Exports the posts associated with the 'block_catalog' taxonomy to a CSV file. - `[--output=<output>]` Path to the CSV file. Defaults to `/tmp/block-catalog.csv`. - `[--post_type=<types>]` Comma-delimited list of post types. Optional. - `[--posts_per_block=<number>]` Number of posts per block, default to -1 (all). Optional. - `[--ignore_parent=<ignore_parent>]` Ignore top level blocks. Optional. Default true. ## Frequently Asked Questions ### 1) Why does the Plugin require indexing? Block Catalog uses a taxonomy to store the data about blocks used across a site. The plugin can build this index via the Tools > Block Catalog screen or via the WP CLI `wp block-catalog index`. After the initial index, the data is automatically kept in sync after any content updates. ### 2) Why does the name displayed in the plugin use the blockName attribute instead of the title? If your blocks are registered on the Backend with the old [register_block_type](https://developer.wordpress.org/reference/functions/register_block_type/) API, you may be missing the `title` attribute. The newer [register_block_type_from_metadata](https://developer.wordpress.org/reference/functions/register_block_type_from_metadata/) uses the same `block.json` on the FE and BE which includes the Block title. When the plugin detects such a missing `title`, it uses the `blockName` suffix instead. eg:- xyz/custom-block will display as Custom Block. To address this you need to update your custom block registration. If this is outside your control, you can also use the `block_catalog_block_title` filter hook to override the title as seen below. ```php <?php add_filter( 'block_catalog_block_title', function( $title, $block_name, $block ) { $map = [ "xyz/custom-block" => "My Custom Block", ]; if ( ! empty( $map[ $block_name ] ) ) { return $map[ $block_name ]; } return $title; }, 10, 3 ); ``` ### Where do I report security bugs found in this plugin? Please report security bugs found in the source code of the Block Catalog plugin through the [Patchstack Vulnerability Disclosure  Program](https://patchstack.com/database/vdp/2b074f7a-1627-4c59-9072-4dca6bc02b63). The Patchstack team will assist you with verification, CVE assignment, and notify the developers of this plugin. ## Support Level **Stable:** 10up is not planning to develop any new features for this, but will still respond to bug reports and security concerns. We welcome PRs, but any that include new features should be small and easy to integrate and should not include breaking changes. We otherwise intend to keep this tested up to the most recent version of WordPress. ## Changelog A complete listing of all notable changes to Block Catalog are documented in [CHANGELOG.md](CHANGELOG.md). ## Contributing Please read [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md) for details on our code of conduct, [CONTRIBUTING.md](CONTRIBUTING.md) for details on the process for submitting pull requests to us, and [CREDITS.md](CREDITS.md) for a listing of maintainers, contributors, and libraries for Block Catalog. ## Like what you see? <a href="http://10up.com/contact/"><img src="https://github.com/10up/.github/blob/trunk/profile/10up-github-banner.jpg" width="850" alt="Work with the 10up WordPress Practice at Fueled"></a>

WordPress Themes & Plugins
60 Github Stars