One of our goals as WordPress developers should be to build user friendly websites and admin interfaces. In many cases once we’ve added custom post types, taxonomies, plugins, and other features required by a site’s design and structure, the WordPress admin panel can become unwieldy and may be confusing to site managers. In this session we’ll explore a number of strategies and techniques that will help make site administration an empowering experience for your clients. We’ll discuss modification of the admin panel, strategic use of custom fields, managing permissions, use of labels and help text, and more, all with the goal of making hand offs to non-technical website managers stress free.
devise tutorial - 2011 rubyconf taiwanTse-Ching Ho
This document provides an overview and instructions for building an authentication system using the Devise gem in Rails. It discusses Devise's features like authentication modules, filters, helpers and extensions. It also outlines setting up Devise by generating models, configuring routes and customizing views. The document demonstrates deploying a sample Devise app to Heroku and adding manager authentication with custom routes.
This document provides instructions for setting up user authentication for a Rails application using Devise and OAuth with Facebook. It includes steps for installing Devise, generating a User model, configuring routes and callbacks, setting up the Facebook application, and connecting a user's Facebook account to authenticate and sign in.
The document discusses Ruby on Rails and RESTful routing. It explains that RESTful routing maps HTTP verbs like GET, POST, PUT, and DELETE to controller actions for basic CRUD operations. This follows conventions like using the GET verb for the index and show actions, POST for create, PUT for update, and DELETE for destroy. It shows how Rails' resource routing generates RESTful routes and named helpers like events_path for simple, intuitive routing.
Rails Plugins - Linux For You, March 2011 IssueSagar Arlekar
'Linux For You' article by http://foodlets.in founders Govind Naroji and Sagar Arlekar.
This is a tutorial on will_paginate (pagination), authlogic + omniauth (authentication) and paperclip (file attachments) plugins.
This document discusses WordPress plugins and database tables. It covers hooks, which allow plugins to connect functions to events. Hooks are either actions or filters. Database tables in WordPress use a metadata structure, with meta tables containing key-value pairs that provide flexibility. Taxonomies classify terms and allow terms to be associated with posts through term relationships and term taxonomies. Next week's topics will include adding admin menus and handling POST data for plugins.
Pundit is a simple authorization gem for Rails applications. It allows controlling authorization through policy classes that define what users can do. Policies go in app/policies and define permissions using plain Ruby classes and methods. Pundit is popular, well-maintained, and integrates authorization checks into controllers and views. It also supports authorization scoping and works with APIs by allowing customization of the user context.
Implement rich snippets in your webshopArjen Miedema
This document provides instructions for implementing rich snippets in a Magento webshop by modifying template files. It discusses the differences between using an extension vs modifying templates directly. It then provides specific code examples and instructions for adding structured data to product pages, search, breadcrumbs, reviews and related products to enable rich snippets for products, reviews and searches. The key steps are to add schema.org itemscope and itemprop tags throughout template files to identify entities and properties.
This document discusses the use of Backbone.js and Ember.js for building single page applications. It describes how to build a purchases management application using these frameworks, including defining models, views, routes and controllers. Key aspects covered include connecting outlets to display different views, passing data contexts between routes, and transitioning between routes for index, viewing and editing purchases.
devise tutorial - 2011 rubyconf taiwanTse-Ching Ho
This document provides an overview and instructions for building an authentication system using the Devise gem in Rails. It discusses Devise's features like authentication modules, filters, helpers and extensions. It also outlines setting up Devise by generating models, configuring routes and customizing views. The document demonstrates deploying a sample Devise app to Heroku and adding manager authentication with custom routes.
This document provides instructions for setting up user authentication for a Rails application using Devise and OAuth with Facebook. It includes steps for installing Devise, generating a User model, configuring routes and callbacks, setting up the Facebook application, and connecting a user's Facebook account to authenticate and sign in.
The document discusses Ruby on Rails and RESTful routing. It explains that RESTful routing maps HTTP verbs like GET, POST, PUT, and DELETE to controller actions for basic CRUD operations. This follows conventions like using the GET verb for the index and show actions, POST for create, PUT for update, and DELETE for destroy. It shows how Rails' resource routing generates RESTful routes and named helpers like events_path for simple, intuitive routing.
Rails Plugins - Linux For You, March 2011 IssueSagar Arlekar
'Linux For You' article by http://foodlets.in founders Govind Naroji and Sagar Arlekar.
This is a tutorial on will_paginate (pagination), authlogic + omniauth (authentication) and paperclip (file attachments) plugins.
This document discusses WordPress plugins and database tables. It covers hooks, which allow plugins to connect functions to events. Hooks are either actions or filters. Database tables in WordPress use a metadata structure, with meta tables containing key-value pairs that provide flexibility. Taxonomies classify terms and allow terms to be associated with posts through term relationships and term taxonomies. Next week's topics will include adding admin menus and handling POST data for plugins.
Pundit is a simple authorization gem for Rails applications. It allows controlling authorization through policy classes that define what users can do. Policies go in app/policies and define permissions using plain Ruby classes and methods. Pundit is popular, well-maintained, and integrates authorization checks into controllers and views. It also supports authorization scoping and works with APIs by allowing customization of the user context.
Implement rich snippets in your webshopArjen Miedema
This document provides instructions for implementing rich snippets in a Magento webshop by modifying template files. It discusses the differences between using an extension vs modifying templates directly. It then provides specific code examples and instructions for adding structured data to product pages, search, breadcrumbs, reviews and related products to enable rich snippets for products, reviews and searches. The key steps are to add schema.org itemscope and itemprop tags throughout template files to identify entities and properties.
This document discusses the use of Backbone.js and Ember.js for building single page applications. It describes how to build a purchases management application using these frameworks, including defining models, views, routes and controllers. Key aspects covered include connecting outlets to display different views, passing data contexts between routes, and transitioning between routes for index, viewing and editing purchases.
This document explains concepts used in an Ionic tabs template application, including dependency injection, nested states, services, controllers, and templates. Key concepts covered include using ng-repeat to loop through data arrays, accessing services from controllers, passing state parameters between views, and two-way data binding with ng-model. The application structure separates code into modules for services, controllers, and configuration, with templates populated from controllers using the tabs navigation template.
CRUD, form management, and how Dojo solves it. It was delivered at ClubAJAX on 12/2/2009. Blog post: http://lazutkin.com/blog/2009/dec/2/crud-with-dojo/
How to Develop a Basic Magento Extension TutorialHendy Irawan
This document provides instructions for creating a basic Magento extension that displays a Twitter profile stream using blocks and templates. It discusses project folder structure, creating configuration files, block and helper classes, templates, making the block configurable, and adding configuration options in the Magento admin panel. The extension demonstrates how to output Twitter data by rendering templates containing Twitter widgets code.
This document provides instructions for using the ECOS framework to build and manage web applications. It discusses creating a sample "notebook" application using ECOS commands like install, update, and createproject. It also covers concepts like the MVC pattern, database schema definition, controllers, models, views, services, and extensions. The document demonstrates how to add features to the notebook app like user avatars, logging, and notifications as reusable services and extensions.
Django Meetup Bogotá. Class Based Views con ejemplos. Class Based Views with examples.
Código fuente: https://bitbucket.org/vero4ka/cbvexamples
Class Based Views with examles.
This document discusses Django templates and summarizes key concepts:
1. Templates can inherit from other templates using {% extends %} and {% block %} tags to define content blocks that child templates can fill;
2. Common blocks are title, content, and extra CSS/JS;
3. Templates can include other partial templates with {% include %} and organize code into reusable parts;
4. Comments can be added with {# single-line #} or {% comment %}multiline{% endcomment %};
5. Filters can modify variables displayed in templates, such as upper, lower, truncate, and naturaltime from django.contrib.humanize.
Ajax is a method of employing JavaScript, DHTML, and the XMLHttp behaviour in the
browser to provide truly dynamic content on a Web page without a page refresh. There are
quantifiable benefits to be realized for end users and businesses, which include improved
usability and faster applications. In this tutorial I will look at a simple example using Ajax4JSF
with JSF, Facelets, Maven2 and Eclipse.
WordPress overloading Gravityforms using hooks, filters and extending classes Paul Bearne
This document provides an overview of extending Gravity Forms through code examples. It begins with a demo of overloading Gravity Forms select fields with options from an external API. Code is presented to overload options and entire classes. Another demo shows sending form data to an external AR API. Additional code examples demonstrate adding custom validation, scripts, stylesheets and settings through the Add-On framework. The document concludes with information on Gravity Forms hooks and APIs for integrating with external services.
The document discusses the development of a wiki application using Ruby on Rails. It goes through setting up controllers and specs for user authentication including login, logout, and authorization. It then covers controllers and specs for pages including indexing, showing, creating, editing, updating, and deleting pages. Finally, it mentions setting up comments as a nested resource of pages.
This document provides information about Silex, a PHP micro-framework. It includes usage examples and configuration instructions for Silex on Apache, Nginx, IIS, and Lighttpd web servers. It also covers routing, controllers, middlewares, error handling, and other Silex features.
You're Doing it Wrong - WordCamp OrlandoChris Scott
The document discusses various ways that developers commonly do things wrong when working with WordPress. It provides examples of wrong code patterns and anti-patterns compared to better right ways of doing things, such as properly validating and escaping user input, using WordPress helper functions and classes instead of globals, enqueueing scripts and styles rather than directly echoing them, and contributing back to the WordPress community.
This document provides instructions for building a basic CRUD (create, read, update, delete) application for flowers using Laravel. It includes steps to install Laravel and its dependencies, generate a model and migration, create routes and controllers, build views with forms and tables, add validation, and implement CRUD functionality for managing flower records in the database.
The document discusses 7 reasons why developers should love Joomla. It covers how Joomla allows overriding of modules, views, styles, and other elements. It also discusses how Joomla allows customization of layouts, plugins, modules, and has support for JSON responses and a command line interface. The final point discusses the benefits of Joomla's community for developers.
1. The document discusses REST (Representational State Transfer) and how it is used in Rails. REST uses HTTP methods like GET, POST, PUT, DELETE to perform CRUD (create, read, update, delete) operations on resources.
2. Rails follows REST principles by using resourceful routing and RESTful controllers with actions that map to HTTP methods. This allows creating clean, semantic URLs and simplifies development.
3. RESTful design in Rails encourages using the same URL structure for related resources. For example, adding comments to an article would use POST /articles/:article_id/comments rather than adding a custom action to the ArticlesController.
1. Developing web applications has become increasingly complex over the years, requiring developers to choose frameworks, configure apps, and handle deployment.
2. Templates can help streamline development by providing pre-configured starting points for common stacks and handling boilerplate configuration.
3. Tools like Vagrant and Docker can help isolate development environments and more easily simulate production.
4. Frameworks like Brunch and Yeoman can automate frontend tasks like compilation, minification, and live reloading.
10 Things Every Plugin Developer Should Know (WordCamp Atlanta 2013)arcware
The document outlines 10 things that every WordPress plugin developer should know, including enabling debugging, prefixing functions, enqueuing scripts and styles properly, only including JS/CSS on admin pages, using AJAX in the admin, adding extensibility hooks, supporting multisite, internationalization, security, and using helpful functions and constants. It provides examples and explanations for each topic to help plugin developers write more effective and secure code.
This document outlines unconventional self-defense and first aid uses for bread. It describes how carrying a loaf of bread can serve as a self-defense weapon against attackers, as bread is inexpensive, requires no special license, and is less lethal than a gun. The document recommends using old, hard bread and provides procedures for its use, including carrying it during everyday activities. It also notes bread's absorbent properties make it useful for stopping bleeding in emergency first aid situations.
Reservoir Minerals is a Canadian-listed project generator company focused on managing exploration risk through multiple early-stage exploration projects in Europe and Africa. In Serbia, the company has two joint ventures, including one with Freeport-McMoRan that has made a blind discovery of potentially large copper-gold mineralization at the Timok project. Reservoir is well funded with $19 million in treasury to advance its projects through exploration and seek additional partnerships.
This document explains concepts used in an Ionic tabs template application, including dependency injection, nested states, services, controllers, and templates. Key concepts covered include using ng-repeat to loop through data arrays, accessing services from controllers, passing state parameters between views, and two-way data binding with ng-model. The application structure separates code into modules for services, controllers, and configuration, with templates populated from controllers using the tabs navigation template.
CRUD, form management, and how Dojo solves it. It was delivered at ClubAJAX on 12/2/2009. Blog post: http://lazutkin.com/blog/2009/dec/2/crud-with-dojo/
How to Develop a Basic Magento Extension TutorialHendy Irawan
This document provides instructions for creating a basic Magento extension that displays a Twitter profile stream using blocks and templates. It discusses project folder structure, creating configuration files, block and helper classes, templates, making the block configurable, and adding configuration options in the Magento admin panel. The extension demonstrates how to output Twitter data by rendering templates containing Twitter widgets code.
This document provides instructions for using the ECOS framework to build and manage web applications. It discusses creating a sample "notebook" application using ECOS commands like install, update, and createproject. It also covers concepts like the MVC pattern, database schema definition, controllers, models, views, services, and extensions. The document demonstrates how to add features to the notebook app like user avatars, logging, and notifications as reusable services and extensions.
Django Meetup Bogotá. Class Based Views con ejemplos. Class Based Views with examples.
Código fuente: https://bitbucket.org/vero4ka/cbvexamples
Class Based Views with examles.
This document discusses Django templates and summarizes key concepts:
1. Templates can inherit from other templates using {% extends %} and {% block %} tags to define content blocks that child templates can fill;
2. Common blocks are title, content, and extra CSS/JS;
3. Templates can include other partial templates with {% include %} and organize code into reusable parts;
4. Comments can be added with {# single-line #} or {% comment %}multiline{% endcomment %};
5. Filters can modify variables displayed in templates, such as upper, lower, truncate, and naturaltime from django.contrib.humanize.
Ajax is a method of employing JavaScript, DHTML, and the XMLHttp behaviour in the
browser to provide truly dynamic content on a Web page without a page refresh. There are
quantifiable benefits to be realized for end users and businesses, which include improved
usability and faster applications. In this tutorial I will look at a simple example using Ajax4JSF
with JSF, Facelets, Maven2 and Eclipse.
WordPress overloading Gravityforms using hooks, filters and extending classes Paul Bearne
This document provides an overview of extending Gravity Forms through code examples. It begins with a demo of overloading Gravity Forms select fields with options from an external API. Code is presented to overload options and entire classes. Another demo shows sending form data to an external AR API. Additional code examples demonstrate adding custom validation, scripts, stylesheets and settings through the Add-On framework. The document concludes with information on Gravity Forms hooks and APIs for integrating with external services.
The document discusses the development of a wiki application using Ruby on Rails. It goes through setting up controllers and specs for user authentication including login, logout, and authorization. It then covers controllers and specs for pages including indexing, showing, creating, editing, updating, and deleting pages. Finally, it mentions setting up comments as a nested resource of pages.
This document provides information about Silex, a PHP micro-framework. It includes usage examples and configuration instructions for Silex on Apache, Nginx, IIS, and Lighttpd web servers. It also covers routing, controllers, middlewares, error handling, and other Silex features.
You're Doing it Wrong - WordCamp OrlandoChris Scott
The document discusses various ways that developers commonly do things wrong when working with WordPress. It provides examples of wrong code patterns and anti-patterns compared to better right ways of doing things, such as properly validating and escaping user input, using WordPress helper functions and classes instead of globals, enqueueing scripts and styles rather than directly echoing them, and contributing back to the WordPress community.
This document provides instructions for building a basic CRUD (create, read, update, delete) application for flowers using Laravel. It includes steps to install Laravel and its dependencies, generate a model and migration, create routes and controllers, build views with forms and tables, add validation, and implement CRUD functionality for managing flower records in the database.
The document discusses 7 reasons why developers should love Joomla. It covers how Joomla allows overriding of modules, views, styles, and other elements. It also discusses how Joomla allows customization of layouts, plugins, modules, and has support for JSON responses and a command line interface. The final point discusses the benefits of Joomla's community for developers.
1. The document discusses REST (Representational State Transfer) and how it is used in Rails. REST uses HTTP methods like GET, POST, PUT, DELETE to perform CRUD (create, read, update, delete) operations on resources.
2. Rails follows REST principles by using resourceful routing and RESTful controllers with actions that map to HTTP methods. This allows creating clean, semantic URLs and simplifies development.
3. RESTful design in Rails encourages using the same URL structure for related resources. For example, adding comments to an article would use POST /articles/:article_id/comments rather than adding a custom action to the ArticlesController.
1. Developing web applications has become increasingly complex over the years, requiring developers to choose frameworks, configure apps, and handle deployment.
2. Templates can help streamline development by providing pre-configured starting points for common stacks and handling boilerplate configuration.
3. Tools like Vagrant and Docker can help isolate development environments and more easily simulate production.
4. Frameworks like Brunch and Yeoman can automate frontend tasks like compilation, minification, and live reloading.
10 Things Every Plugin Developer Should Know (WordCamp Atlanta 2013)arcware
The document outlines 10 things that every WordPress plugin developer should know, including enabling debugging, prefixing functions, enqueuing scripts and styles properly, only including JS/CSS on admin pages, using AJAX in the admin, adding extensibility hooks, supporting multisite, internationalization, security, and using helpful functions and constants. It provides examples and explanations for each topic to help plugin developers write more effective and secure code.
This document outlines unconventional self-defense and first aid uses for bread. It describes how carrying a loaf of bread can serve as a self-defense weapon against attackers, as bread is inexpensive, requires no special license, and is less lethal than a gun. The document recommends using old, hard bread and provides procedures for its use, including carrying it during everyday activities. It also notes bread's absorbent properties make it useful for stopping bleeding in emergency first aid situations.
Reservoir Minerals is a Canadian-listed project generator company focused on managing exploration risk through multiple early-stage exploration projects in Europe and Africa. In Serbia, the company has two joint ventures, including one with Freeport-McMoRan that has made a blind discovery of potentially large copper-gold mineralization at the Timok project. Reservoir is well funded with $19 million in treasury to advance its projects through exploration and seek additional partnerships.
The document provides an orientation for new experts in the Directly app. It summarizes the key aspects of the Directly dashboard and tools for experts. It explains how experts can view and track their stats, tasks, and rewards. It also provides guidance on best practices for answering questions, interacting with customers, and collaborating with other experts.
This document presents information on a proposed transaction to create a diversified mid-tier base metals company. The transaction involves Nevsun Resources providing funding to Reservoir Minerals to exercise its right of first offer on the Timok Copper-Gold Project in Serbia. This would consolidate 100% ownership of the high-grade Upper Zone of Timok for Nevsun. The transaction is expected to benefit shareholders of both companies by advancing the development of Timok and creating a larger, more valuable company with exposure to two mining districts.
The radio advertisement promotes the Volkswagen Passat Highline Plus primarily to male drivers by using stereotypical male and female voices. The female voice describes features like heated seats and boot space, while the male voice discusses the car's price and performance like a "boy toy." The advertisement aims to persuade listeners to purchase the car by highlighting its expensive new features but could be more effective if it included slogans, mentioned the Volkswagen name more, and provided additional contact information.
This document provides an orientation for experts joining the Rover Expert Program powered by Directly. It outlines the key aspects of the Directly app such as the dashboard, answering questions, customer ratings, rewards, and resources for experts. Experts are encouraged to introduce themselves, start answering questions, and utilize additional resources to learn best practices.
The document summarizes information provided by Chris Gladwin, the media technician at Eccles College, about the radio facilities. Chris explained the various pieces of equipment in the radio room, including an S Radio Octomix Compact mixer with touch screen, S Radio software modules for broadcasting, scheduling, and production, and DAW programs like Reaper and Audacity for editing audio. He also described the microphones used for recording radio shows and ads, as well as the Behringer headphone amplifiers and PlanetEStream software for streaming music.
The document is a client brief for a commercial radio advertisement for Samsung from Declan Tyldesley. It outlines that the advertisement will focus on Samsung phones like the Galaxy S6 and have a formal, direct tone to connect with Samsung's wide audience. Rhetorical questions will be used to catch listeners' attention. The advertisement will be a 30-second produced script format to better establish the message. A special offer unique selling point will aim to attract more of the audience to purchase the phone. The total estimated budget for the radio advertisement's production through E6 Radio is £1650.
1) O documento é um currículo de Claudia Alexandra Rodrigues de Brito Garcia, portuguesa nascida em 1982.
2) Ela tem experiência profissional em várias áreas como rececionista, secretária e operadora de loja.
3) Ela está cursando uma licenciatura em Psicopedagogia Clínica na Universidade Lusófona do Porto.
An Introduction to Petroleum & Mineral Resources of AfghanistanIPPAI
This document provides an overview of the petroleum and mineral resources of Afghanistan. It describes 5 major hydrocarbon basins in the country and notes their estimated oil and gas potential. It also outlines Afghanistan's significant mineral deposits, including iron, copper, gold, coal, lithium and rare earth elements. Challenges to developing the mining and petroleum sectors are discussed. Several current and planned energy and mining projects in Afghanistan are also summarized.
This document provides 10 hacks for customizing the WordPress dashboard for developers and freelancers. The hacks include removing menu items and screen options, changing default text, disabling update messages, locking themes, modifying colors, and adding custom help messages. It also provides code snippets to change the default from email address used for WordPress. The hacks are designed to modify the dashboard interface to suit specific needs or prevent clients from accessing certain areas.
First Steps in Drupal Code Driven DevelopmentNuvole
"First Steps in Code Driven Development" covers basic techniques and good practices. Presented during the "Developer Session" at Krimson office, Antwerp (BE), the 27th of May 2010.
Brad Williams, the co-author of Professional WordPress Plugin Development, gives his presentation on Intro to WordPress Plugin Development to the NYC WordPress Meetup group in March 2011.
The document provides guidance on how to write a first WordPress plugin, including an overview of plugins and their capabilities, how to structure a plugin with PHP code and files, how to use hooks and filters to extend WordPress functionality, how to add administrative features like settings pages and widgets, and tips for best practices when developing WordPress plugins.
Kumar Pratik presented an overview of the Langoor feature SDK and API. The summary includes:
1) The SDK allows developers to create custom features for the Langoor editor with widgets, databases, and responses to actions like install and getProperty.
2) Features have main classes that define constructor, install, and other functions, while widgets define functions for HTML output, properties, and more.
3) The API uses responses to communicate with the editor, including forms, HTML, and actions like opening dialogs or the widget panel.
4) Developers need to understand HTML, CSS, JavaScript, PHP and MySQL to code features and widgets, which can include creating databases and handlers for functions
1. What a plugin is and examples of common plugin types.
2. Best practices for plugin structure and organization.
3. How to determine file paths and URLs within a plugin.
4. Important plugin activation, deactivation, and uninstall techniques.
5. An overview of hooks, shortcodes, menus, and settings that plugins can utilize.
6. Resources for further plugin development learning and support.
How to Create A Magento Adminhtml Controller in Magento ExtensionHendy Irawan
This document discusses how to create an adminhtml controller in a Magento extension. It explains the necessary files and configurations, including creating a module configuration file, activating the module, defining a controller class, adding router configuration, creating admin menu links, handling GET and POST requests, adding layout files, and displaying messages. The goal is to demonstrate the basic structure and functionality for building out an admin interface in Magento.
Alfredo PUMEX provides a pluggable mechanism for customizing the SugarCRM Users module without modifying core files. It uses jQuery and Alfredo Patch to dynamically extend the Users module functionality. Extension modules simply provide template and PHP files that are loaded via globbing. This allows customizing detail and edit views, and intercepting save actions to handle custom fields. The document provides an example of refactoring the YAAI module to use this approach instead of overwriting core files.
This document describes how to use Alfredo PUMEX to add pluggable customizations to the SugarCRM Users module without modifying core files. PUMEX uses jQuery to dynamically extend the Users module functionality. It includes JavaScript files that insert custom HTML into detail and edit views via AJAX calls. Server-side PHP scripts then render additional Smarty templates containing custom fields and handle saving custom field data. This allows customizing the Users module in a modular way without patching SugarCRM core files.
Alfredo PUMEX provides a pluggable extension mechanism for customizing the SugarCRM Users module without modifying core files. It makes extensive use of jQuery and Alfredo Patch to dynamically extend the Users module functionality. Template files and JavaScript are used to augment views, while a globbing mechanism loads custom PHP scripts on relevant actions. This allows per-user customizations to be added in a modular way without touching the original Users code. The document provides an example of refactoring the YAAI module to use this approach instead of overwriting core files.
This document describes how to use Alfredo PUMEX to add customizable fields to the SugarCRM Users module in a modular way without overwriting core files. PUMEX uses jQuery to dynamically extend the Users module functionality. It includes JavaScript files that insert custom HTML into the detail and edit views. Server-side PHP scripts then retrieve and save any custom field data. This allows third-party modules to customize the Users module in a standardized way without conflicting with each other or requiring patches on SugarCRM upgrades.
WordPress Structure and Best Practicesmarkparolisi
The document discusses the directory structure, core files, database structure, plugins, themes, and templates in WordPress. It provides information on actions, filters, widgets, modifying plugins, and best practices for developing WordPress sites and plugins. Key points include the directory locations for core files, plugins, themes, and uploads, as well as the main database tables like wp_posts and wp_options.
The document summarizes key points from a WordPress meetup discussion on plugin development:
- Mostafa Soufi discussed why developers make plugins and what plugins are comprised of. He suggested starting a new plugin by creating directories and files and adding a readme file.
- Navid Kashani recommended focusing on support from the beginning by improving support processes, solving issues proactively, setting metrics, and using a central support channel like Slack. Hiring a support person is not necessary initially.
- The discussion covered plugin best practices like internationalization, shortcodes, activation hooks, caching with transients, security techniques, and answering questions from attendees.
Working With The Symfony Admin GeneratorJohn Cleveley
The document provides tips for customizing and extending the symfony admin generator. It discusses using PHP configuration instead of YAML, adding relations between models, translating the admin interface, tidying filters, and displaying timestamp fields as plain text. The key recommendations are to understand requirements before using the generator, customize it to suit workflows, and avoid it becoming a messy catch-all solution.
The document discusses WordPress plugins and the plugin architecture introduced in WordPress 1.2. It explains that plugins can modify WordPress through filters, which modify text, and actions, which execute code triggered by events. Filters and actions allow plugins to inject code at specific points via hooks. Examples of filters include the_content and wp_list_pages. Examples of actions include admin_head and save_post. The document provides code samples of plugins using filters and actions.
The document provides tips for creating reusable plugins in CakePHP. It discusses placing plugin code in standardized directories, extending and customizing existing plugins, using components and behaviors to add reusable logic, and automating tasks through callbacks and configuration. Emphasis is placed on writing clean, well-tested code and documenting plugins to make them easy for others to implement and extend.
A quick run through explaining actions and filters that are used throughout WordPress (with useful metaphors) and some examples. It is intended to demonstrate that actions and filters are not as scary as people might think and that they can very easily make significant changes with only a few lines of code.
The document discusses the Google App Engine Oil (GAEO) framework, which aims to provide a structured and parameterized approach to developing applications on Google App Engine. GAEO version 0.1 was released in September 2008 and introduced features like URL routing, action controllers, session support, and model enhancements. Version 0.2 added additional features like plugins and AJAX/form helpers. The document outlines GAEO's software architecture and code layout, and describes its current features and future roadmap. It provides links to documentation and forums for further information.
Using Geeklog as a Web Application FrameworkDirk Haun
Slides for the workshop "Using Geeklog as a Web Application Framework", as held at
- LinuxTag 2006, Wiesbaden, Germany, 2006-05-06
- PHP user group meeting, Stuttgart, Germany, 2006-05-10
- FrOSCon, Bonn, Germany, 2006-06-24
Similar to Empowering users: modifying the admin experience (20)
SOCRadar's Aviation Industry Q1 Incident Report is out now!
The aviation industry has always been a prime target for cybercriminals due to its critical infrastructure and high stakes. In the first quarter of 2024, the sector faced an alarming surge in cybersecurity threats, revealing its vulnerabilities and the relentless sophistication of cyber attackers.
SOCRadar’s Aviation Industry, Quarterly Incident Report, provides an in-depth analysis of these threats, detected and examined through our extensive monitoring of hacker forums, Telegram channels, and dark web platforms.
OpenMetadata Community Meeting - 5th June 2024OpenMetadata
The OpenMetadata Community Meeting was held on June 5th, 2024. In this meeting, we discussed about the data quality capabilities that are integrated with the Incident Manager, providing a complete solution to handle your data observability needs. Watch the end-to-end demo of the data quality features.
* How to run your own data quality framework
* What is the performance impact of running data quality frameworks
* How to run the test cases in your own ETL pipelines
* How the Incident Manager is integrated
* Get notified with alerts when test cases fail
Watch the meeting recording here - https://www.youtube.com/watch?v=UbNOje0kf6E
Quarkus Hidden and Forbidden ExtensionsMax Andersen
Quarkus has a vast extension ecosystem and is known for its subsonic and subatomic feature set. Some of these features are not as well known, and some extensions are less talked about, but that does not make them less interesting - quite the opposite.
Come join this talk to see some tips and tricks for using Quarkus and some of the lesser known features, extensions and development techniques.
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxrickgrimesss22
Discover the essential features to incorporate in your Winzo clone app to boost business growth, enhance user engagement, and drive revenue. Learn how to create a compelling gaming experience that stands out in the competitive market.
Launch Your Streaming Platforms in MinutesRoshan Dwivedi
The claim of launching a streaming platform in minutes might be a bit of an exaggeration, but there are services that can significantly streamline the process. Here's a breakdown:
Pros of Speedy Streaming Platform Launch Services:
No coding required: These services often use drag-and-drop interfaces or pre-built templates, eliminating the need for programming knowledge.
Faster setup: Compared to building from scratch, these platforms can get you up and running much quicker.
All-in-one solutions: Many services offer features like content management systems (CMS), video players, and monetization tools, reducing the need for multiple integrations.
Things to Consider:
Limited customization: These platforms may offer less flexibility in design and functionality compared to custom-built solutions.
Scalability: As your audience grows, you might need to upgrade to a more robust platform or encounter limitations with the "quick launch" option.
Features: Carefully evaluate which features are included and if they meet your specific needs (e.g., live streaming, subscription options).
Examples of Services for Launching Streaming Platforms:
Muvi [muvi com]
Uscreen [usencreen tv]
Alternatives to Consider:
Existing Streaming platforms: Platforms like YouTube or Twitch might be suitable for basic streaming needs, though monetization options might be limited.
Custom Development: While more time-consuming, custom development offers the most control and flexibility for your platform.
Overall, launching a streaming platform in minutes might not be entirely realistic, but these services can significantly speed up the process compared to building from scratch. Carefully consider your needs and budget when choosing the best option for you.
Code reviews are vital for ensuring good code quality. They serve as one of our last lines of defense against bugs and subpar code reaching production.
Yet, they often turn into annoying tasks riddled with frustration, hostility, unclear feedback and lack of standards. How can we improve this crucial process?
In this session we will cover:
- The Art of Effective Code Reviews
- Streamlining the Review Process
- Elevating Reviews with Automated Tools
By the end of this presentation, you'll have the knowledge on how to organize and improve your code review proces
Software Engineering, Software Consulting, Tech Lead, Spring Boot, Spring Cloud, Spring Core, Spring JDBC, Spring Transaction, Spring MVC, OpenShift Cloud Platform, Kafka, REST, SOAP, LLD & HLD.
Transform Your Communication with Cloud-Based IVR SolutionsTheSMSPoint
Discover the power of Cloud-Based IVR Solutions to streamline communication processes. Embrace scalability and cost-efficiency while enhancing customer experiences with features like automated call routing and voice recognition. Accessible from anywhere, these solutions integrate seamlessly with existing systems, providing real-time analytics for continuous improvement. Revolutionize your communication strategy today with Cloud-Based IVR Solutions. Learn more at: https://thesmspoint.com/channel/cloud-telephony
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j
Dr. Jesús Barrasa, Head of Solutions Architecture for EMEA, Neo4j
Découvrez les dernières innovations de Neo4j, et notamment les dernières intégrations cloud et les améliorations produits qui font de Neo4j un choix essentiel pour les développeurs qui créent des applications avec des données interconnectées et de l’IA générative.
Artificia Intellicence and XPath Extension FunctionsOctavian Nadolu
The purpose of this presentation is to provide an overview of how you can use AI from XSLT, XQuery, Schematron, or XML Refactoring operations, the potential benefits of using AI, and some of the challenges we face.
Graspan: A Big Data System for Big Code AnalysisAftab Hussain
We built a disk-based parallel graph system, Graspan, that uses a novel edge-pair centric computation model to compute dynamic transitive closures on very large program graphs.
We implement context-sensitive pointer/alias and dataflow analyses on Graspan. An evaluation of these analyses on large codebases such as Linux shows that their Graspan implementations scale to millions of lines of code and are much simpler than their original implementations.
These analyses were used to augment the existing checkers; these augmented checkers found 132 new NULL pointer bugs and 1308 unnecessary NULL tests in Linux 4.4.0-rc5, PostgreSQL 8.3.9, and Apache httpd 2.2.18.
- Accepted in ASPLOS ‘17, Xi’an, China.
- Featured in the tutorial, Systemized Program Analyses: A Big Data Perspective on Static Analysis Scalability, ASPLOS ‘17.
- Invited for presentation at SoCal PLS ‘16.
- Invited for poster presentation at PLDI SRC ‘16.
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j
Dr. Jesús Barrasa, Head of Solutions Architecture for EMEA, Neo4j
Découvrez les dernières innovations de Neo4j, et notamment les dernières intégrations cloud et les améliorations produits qui font de Neo4j un choix essentiel pour les développeurs qui créent des applications avec des données interconnectées et de l’IA générative.
Mobile App Development Company In Noida | Drona InfotechDrona Infotech
Looking for a reliable mobile app development company in Noida? Look no further than Drona Infotech. We specialize in creating customized apps for your business needs.
Visit Us For : https://www.dronainfotech.com/mobile-application-development/
Enterprise Resource Planning System includes various modules that reduce any business's workload. Additionally, it organizes the workflows, which drives towards enhancing productivity. Here are a detailed explanation of the ERP modules. Going through the points will help you understand how the software is changing the work dynamics.
To know more details here: https://blogs.nyggs.com/nyggs/enterprise-resource-planning-erp-system-modules/
WhatsApp offers simple, reliable, and private messaging and calling services for free worldwide. With end-to-end encryption, your personal messages and calls are secure, ensuring only you and the recipient can access them. Enjoy voice and video calls to stay connected with loved ones or colleagues. Express yourself using stickers, GIFs, or by sharing moments on Status. WhatsApp Business enables global customer outreach, facilitating sales growth and relationship building through showcasing products and services. Stay connected effortlessly with group chats for planning outings with friends or staying updated on family conversations.
2. OUR GOALS:
HAPPY & EMPOWERED
CLIENTS
This is a client who:
knows how to add content they need to add.
knows how to edit existing content.
never sees code they don't understand.
has full admin access if they ever need it.
can't inadvertantly break the website.
3. OUR GOALS:
CLIENT-FIRST DEVELOPMENT
A development philosophy that incorporates content administration:
automates anything that is automateable.
minimizes use of things that confuse clients (e.g. widgets,
shortcodes).
includes non-theme related functions in plugins, not in theme files.
provides inline documentation whenever possible.
removes unnecessary admin elements.
adds necessary admin elements.
4. HELPING USERS:
CHANGE THE DEFAULT LOGIN
URL
Add this rewrite rule to the .htaccess file at the root of your site:
RewriteRule ^login$ http://demo:9010/wp-login.php [NC,L]
5. HELPING USERS:
MAKING CHANGES BASED ON
CAPABILITY
Sometimes a $capabilityparameter is available
If not, use current_user_can
function kitten_capabilities(){
if ( ! current_user_can( 'edit_users' ) ) { // Conditional based on user role
// Your code here
}
}
Roles and Capabilities: https://codex.wordpress.org/Roles_and_Capabilities
Function Reference: https://codex.wordpress.org/Function_Reference/current_user_can
6. PREVENTING TRAGEDY:
DISABLE THEME/PLUGIN
EDITING IN THE ADMIN
Add to your site's wp-config.php file:
define('DISALLOW_FILE_EDIT', true);
* This snippet will remove the edit options link from the admin menu AND disables editing even if the user goes to the
URL /wp-admin/theme-editor.php.
7. PREVENTING TRAGEDY:
PLUGINS FOR NON-THEME
FUNCTIONS
1. Make a directory for your plugin in /wp-content/plugins.
2. Make a .phpfile in your new directory.
3. Add the below code to initialize your plugin.
4. Add non-theme functions to your new plugin.
/* Plugin Name: Plugin for All Cats Are Awesome
Plugin URI: http://www.slideshare.net/bethsoderberg
Description: This plugin handles non-theme related custom functionality.
Author: Beth Soderberg, CHIEF
Author URI: http://agencychief.com
Version: 1.0 */
8. PREVENTING TRAGEDY:
DISABLE DEACTIVATION OF
VITAL PLUGINS
add_filter( 'plugin_action_links', 'kitten_disable_plugin_actions', 10, 4 );
function kitten_disable_plugin_actions( $actions, $plugin_file, $plugin_data, $context ) {
// removes edit link for all plugins
if ( array_key_exists( 'edit', $actions ) )
unset( $actions['edit'] );
// removes deactivate link for selected plugins
$plugins = array( 'advanced-custom-fields/acf.php' );
if ( array_key_exists( 'deactivate', $actions ) && in_array( $plugin_file, $plugins ))
unset( $actions['deactivate'] );
return $actions;
}
Filter Reference: https://codex.wordpress.org/Plugin_API/Filter_Reference/plugin_action_links_(plugin_file_name)
9. PREVENTING TRAGEDY:
DISABLE DEACTIVATION OF
VITAL PLUGINS
Consider disabling:
Advanced Custom Fields
Site specific plugins
Anything else that will cause the structure of the site to break if
disabled
10. SIMPLIFYING THE DASHBOARD:
REMOVING DASHBOARD
WIDGETS
function kitten_dashboard_widgets() {
remove_meta_box(
'dashboard_quick_press', // ID of element to remove
'dashboard', // type of screen
'side' // context
);
}
add_action( 'wp_dashboard_setup', 'kitten_dashboard_widgets' );
* Use the screen options to disable these widgets instead of removing them if they might ever be needed.
Function Reference: https://codex.wordpress.org/Function_Reference/remove_meta_box
11. SIMPLIFYING THE DASHBOARD:
ADDING DASHBOARD WIDGETS
function kitten_db_widget_content( $post, $callback_args ) {
echo "I'm a dashboard widget!"; // widget content
}
function kitten_add_db_widgets() {
wp_add_dashboard_widget(
'dashboard_widget', // ID of element
'Our Shiny Dashboard Widget', // widget name
'kitten_db_widget_content' // callback to function that displays content
);
}
add_action('wp_dashboard_setup', 'kitten_add_db_widgets' );
Function Reference: https://codex.wordpress.org/Function_Reference/wp_add_dashboard_widget
Action Reference: https://codex.wordpress.org/Plugin_API/Action_Reference/wp_dashboard_setup
13. SIMPLIFYING THE MENU:
REMOVING SECOND LEVEL
MENU ITEMS
function kitten_remove_submenus() {
remove_submenu_page(
'index.php', // menu slug
'index.php' // submenu slug
);
remove_submenu_page(
'index.php',
'update-core.php'
);
}
add_action( 'admin_menu', 'kitten_remove_submenus', 999 );
Function Reference: https://codex.wordpress.org/remove_submenu_page
Action Reference: https://codex.wordpress.org/Plugin_API/Action_Reference/admin_menu
14. SIMPLIFYING THE MENU:
ADDING MENU ITEMS
function kitten_add_home_to_menu() {
$homepage_id = get_option( 'page_on_front' );
add_menu_page(
'Homepage', // page title
'Homepage', // menu title
'edit_pages', // user capability
'post.php?post=' . $homepage_id . '&action=edit', // menu slug
false, // don't need a callback function since the page already exists
'dashicons-admin-home', // menu icon
4 // menu position - right below dashboard
);
}
add_action( 'admin_menu', 'kitten_add_home_to_menu' );
Function Reference: https://codex.wordpress.org/Function_Reference/add_menu_page
15. STREAMLINE EDITING:
REMOVE THE THINGS THAT
WILL NEVER BE USED
function kitten_remove_extras() {
remove_post_type_support(
'page', // post type
'comments' // feature being removed
);
}
add_action( 'init', 'kitten_remove_extras' );
* You should really do this through screen options in case the user ever DOES need these things
Function Reference: https://developer.wordpress.org/reference/functions/remove_post_type_support/
16. STREAMLINE EDITING:
REMOVE CONTEXTUAL HELP
TAB
Use inline help or metaboxes instead.
function kitten_remove_contextual_help() {
$screen = get_current_screen();
$screen->remove_help_tabs();
}
add_action( 'admin_head', 'kitten_remove_contextual_help' );
https://developer.wordpress.org/reference/classes/wp_screen/remove_help_tabs/
https://codex.wordpress.org/Plugin_API/Action_Reference/admin_head
17. STREAMLINE EDITING:
EXPLAIN THE FEATURED
IMAGE METABOX
add_filter( 'admin_post_thumbnail_html', 'kitten_explain_featured_image');
function kitten_explain_featured_image( $content ) {
return $content .= '<p>The Featured Image will be associated with this content throughout
the website. Click the link above to add or change the image for this post. </p>';
}
Code Reference: https://developer.wordpress.org/reference/hooks/admin_post_thumbnail_html/
18. STREAMLINE EDITING:
REMOVE UNNEEDED EDITOR
OPTIONS
function kitten_remove_color_button($buttons) {
$remove = 'forecolor'; //Remove text color selector
if ( ( $key = array_search($remove,$buttons) ) !== false )
unset($buttons[$key]); //Find the array key and then unset
return $buttons;
}
add_filter('mce_buttons_2','kitten_remove_color_button');
Filter Reference:
https://codex.wordpress.org/Plugin_API/Filter_Reference/mce_buttons,_mce_buttons_2,_mce_buttons_3,_mce_buttons_4
19. STREAMLINE EDITING:
ADD NEW EDITOR STYLES
Reveal the hidden style button:
function kitten_add_style_button($buttons) {
array_unshift($buttons, 'styleselect'); //Add style selector to the toolbar
return $buttons;
}
add_filter('mce_buttons_2','kitten_add_style_button');
Filter Reference:
https://codex.wordpress.org/Plugin_API/Filter_Reference/mce_buttons,_mce_buttons_2,_mce_buttons_3,_mce_buttons_4
20. STREAMLINE EDITING:
ADD NEW EDITOR STYLES
Add new styles:
function kitten_insert_style_formats( $init_array ) {
$style_formats = array(
array(
'title' => 'Intro', // label
'block' => 'span', // HTML wrapper
'classes' => 'intro', // class
'wrapper' => true, // does it have a wrapper?
), // Each array child has it's own settings
);
$init_array['style_formats'] = json_encode( $style_formats );
// Insert array into 'style_formats'
return $init_array;
}
add_filter( 'tiny_mce_before_init', 'kitten_insert_style_formats' );
Filter Reference: https://codex.wordpress.org/Plugin_API/Filter_Reference/tiny_mce_before_init
21. STREAMLINE EDITING:
ADD NEW QUICK TAGS TO THE
TEXT EDITOR
function kitten_add_quicktags() {
if (wp_script_is('quicktags')){
?>
<script type="text/javascript">
QTags.addButton( 'eg_paragraph', 'p', '<p>', '</p>', 'p', 'Paragraph tag', 1 );
QTags.addButton( 'eg_hr', 'hr', '<hr />', '', 'h', 'Horizontal rule line', 201 );
QTags.addButton( 'eg_pre', 'pre', '<pre lang="php">', '</pre>', 'q', 'Preformatted
text tag', 111 );
</script>
<?php
}
}
add_action( 'admin_print_footer_scripts', 'kitten_add_quicktags' );
Code Reference: https://codex.wordpress.org/Quicktags_API
22. MAKE EDITING THE HOMEPAGE EASY:
ADVANCED CUSTOM FIELDS
Philosophy for the homepage (and other super special pages):
Use a standard page.
Use (ACF) to set up editable content.
Use ACF tabs to organize fields.
Avoid widgets.
Pull any dynamic content through the front-page.phptemplate
file.
Add an edit screen shortcut to the admin sidebar menu.
Advanced Custom Fields
Advanced Custom Fields: http://www.advancedcustomfields.com/
23. MAKE CUSTOM POST TYPES HAPPY:
SET CUSTOM POST TYPE
LABELS
$labels = array(
'name' => __( 'Cats', 'post type general name' ),
'singular_name' => __( 'Cat', 'post type singular name' ),
'menu_name' => __( 'Cats', 'admin menu' ),
'name_admin_bar' => __( 'Cat', 'add new on admin bar' ),
'add_new' => __( 'Add New', 'cat' ),
'add_new_item' => __( 'Add New Cat' ),
'new_item' => __( 'New Cat' ),
'edit_item' => __( 'Edit Cat' ),
'view_item' => __( 'View Cat' ),
'all_items' => __( 'All Cats' ),
'search_items' => __( 'Search Cats' ),
'parent_item_colon' => __( 'Parent Cats:' ),
'not_found' => __( 'No cats found.' ),
'not_found_in_trash' => __( 'No cats found in Trash.' )
);
Function Reference: https://codex.wordpress.org/Function_Reference/register_post_type
24. MAKE CUSTOM POST TYPES HAPPY:
REPLACE TITLE PLACEHOLDER
TEXT
function kitten_title_text_input ( $title ) {
if ( get_post_type() == 'cats' ) {
$title = __( 'Enter cat name here' );
}
return $title;
}
add_filter( 'enter_title_here', 'kitten_title_text_input' );
Code Reference: https://developer.wordpress.org/reference/hooks/enter_title_here/
25. MAKE CUSTOM POST TYPES HAPPY:
MAKE MENU LINKS
APPEAR...OR NOT
show_ui
show_in_nav_menus
show_in_menu
show_in_admin_bar
Function Reference: https://codex.wordpress.org/Function_Reference/register_post_type
26. MAKE CUSTOM POST TYPES HAPPY:
MAKE MENU LINKS APPEAR IN
THE RIGHT ORDER
Set menu_positionto an integer. Standard menu item defaults are:
2 - Dashboard
4 - Separator
5 - Posts
10 - Media
15 - Links
20 - Pages
25 - Comments
59 - Separator
60 - Appearance
65 - Plugins
70 - Users
75 - Tools
80 - Settings
99 - Separator
* The default menu placement for custom post types is after "comments."
Function Reference: https://codex.wordpress.org/Function_Reference/register_post_type
27. MAKE CUSTOM POST TYPES HAPPY:
ADD A LOGICAL DASHICON
USE A DASHICON
1. Choose a
2. Use the CSS class to set the menu_icon.
Dashicon
'menu_icon' => 'dashicons-heart',
USE A CUSTOM IMAGE
'menu_icon' => 'http://www.allcatsareawesome.com/wp-content/uploads/2015/10/cat-icon.png',
Function Reference: https://codex.wordpress.org/Function_Reference/register_post_type
Dashicons: https://developer.wordpress.org/resource/dashicons/
28. MAKE EVERYTHING ON BRAND:
CREATE AN ADMIN THEME
1. Make a directory for the admin theme in wp-content/plugins
2. Add a PHP file that initializes the plugin and enqueues scripts.
3. Add a CSS file for customizations.
/* Plugin Name: Admin Theme for All Cats Are Awesome
Plugin URI: http://www.slideshare.net/bethsoderberg
Description: This plugin styles the admin panel.
Author: Beth Soderberg, CHIEF
Author URI: http://agencychief.com
Version: 1.0*/
function my_admin_theme_style() {
wp_enqueue_style('my-admin-theme', plugins_url('admin-styles.css', __FILE__));
}
add_action('admin_enqueue_scripts', 'my_admin_theme_style');
add_action('login_enqueue_scripts', 'my_admin_theme_style');
Code Reference: https://codex.wordpress.org/Creating_Admin_Themes
29. MAKE EVERYTHING ON BRAND:
MODIFY LOGIN PAGE STYLES
Use the admin theme stylesheet to override this code block (and
anything else!):
.login h1 a {
background-image: none, url("../images/wordpress-logo.svg?ver=20131107");
background-position: center top;
background-repeat: no-repeat;
background-size: 84px auto;
display: block;
font-size: 20px;
height: 84px;
line-height: 1.3em;
margin: 0 auto 25px;
outline: 0 none;
padding: 0;
text-indent: -9999px;
width: 84px;
}
Code Reference: https://codex.wordpress.org/Creating_Admin_Themes
30. MAKE EVERYTHING ON BRAND:
USE JAVASCRIPT... ONLY IF
YOU NEED TO.
function my_admin_theme_style() {
wp_enqueue_style('my-admin-theme', plugins_url('admin-styles.css', __FILE__));
wp_enqueue_script('custom-js', plugins_url('admin-scripts.js', (__FILE__) ) );
}
add_action('admin_enqueue_scripts', 'my_admin_theme_style');
add_action('login_enqueue_scripts', 'my_admin_theme_style');
On Loading Scripts Correctly: https://pippinsplugins.com/loading-scripts-correctly-in-the-wordpress-admin/
31. MAKE EVERYTHING ON BRAND:
MODIFY FOOTER BRANDING
Replace "Thank you for creating with WordPress":
function kitten_footer_admin () {
echo 'Made for you by <a href="http://agencychief.com">CHIEF</a>';
}
add_filter('admin_footer_text', 'kitten_footer_admin');
Remove version number:
function kitten_footer_admin_right() {
remove_filter( 'update_footer', 'core_update_footer' );
}
add_action( 'admin_menu', 'kitten_footer_admin_right' );
Hook Reference: https://developer.wordpress.org/reference/hooks/admin_footer_text/
Hook Reference: https://developer.wordpress.org/reference/hooks/update_footer/
32. MAKE EVERYTHING ON BRAND:
REMOVE WORDPRESS LOGO
FROM HEADER
function kitten_remove_admin_logo( $wp_admin_bar ) {
$wp_admin_bar->remove_node( 'wp-logo' );
}
add_action( 'admin_bar_menu', 'kitten_remove_admin_logo', 11 );
Hook Reference: https://developer.wordpress.org/reference/hooks/admin_bar_menu/