added hangar plugin with support for svg, category and tags in pages

This commit is contained in:
jorge-vitrubio 2022-07-18 16:01:57 +02:00
parent 873809c3dc
commit 36ebf79294
10 changed files with 430 additions and 0 deletions

View File

View File

@ -0,0 +1,5 @@
/* hangar wp plugin styles
*
* css styles
*
*/

63
hangar-wp-plugin.php Normal file
View File

@ -0,0 +1,63 @@
<?php
/*
*
* @link https://hangar.org
* @since 1.0.0
* @package hangar_WP_Plugin
*
* Plugin Name: Hangar wordpress plugin
* Plugin URI: https://git.hangar.org
* Description: Different needs for the Hangar Wordpress theme needs. Tag pages, show tagged content in page view, old posts. Adds support for: SVG.
* Date: 2022 07 10
* Version: 1.0.0
* Author: jorge - vitrubio.net
* Author URI: https://vitrubio.net/
* License: GPL 3.0
* License URI: https://www.gnu.org/licenses/gpl-3.0.html
* Text Domain: hangar-plugin
* Domain Path: /languages
*/
/*
if ever read this never forget to check
howto write a pluggin by Wordpress.org
https://codex.wordpress.org/Writing_a_Plugin
and the best practices
https://developer.wordpress.org/plugins/plugin-basics/best-practices/
*/
// If this file is called directly, abort.
if ( ! defined( 'WPINC' ) ) {
die;
}
//defined( 'ABSPATH' ) or die( 'No script kiddies please!' );
/**
* Currently plugin version.
* Start at version 1.0.0 and use SemVer - https://semver.org
* Rename this for your plugin and update it as you release new versions.
*/
define( 'HANGAR_WPPLUGIN_VERSION', '1.0.0' );
/* *
* define Plugin path
* https://developer.wordpress.org/reference/functions/plugin_dir_path/#comment-1113
* * * * * * * * * * * * * * * * * * */
define( 'HANGAR_WPPLUGIN_PATH', plugin_dir_path( __FILE__ ) );
include( HANGAR_WPPLUGIN_PATH . 'includes/hangar-init-textdomain.php');
include( HANGAR_WPPLUGIN_PATH . 'includes/hangar-enable-svg.php');
if ( is_admin() ) {
include( HANGAR_WPPLUGIN_PATH . 'includes/hangar-stylesheet-admin.php');
} else {
include( HANGAR_WPPLUGIN_PATH . 'includes/hangar-stylesheet-public.php');
}
include( HANGAR_WPPLUGIN_PATH . 'includes/hangar-custom-post-type-resources.php');
include( HANGAR_WPPLUGIN_PATH . 'includes/hangar-tags-and-pages.php');
//include( HANGAR_WPPLUGIN_PATH . 'includes/hangar-tags-category-shortcode.php');

View File

@ -0,0 +1,26 @@
<?php
/**
* Add mimetypes support: svg
*
* @link https://hangar.org
* @since 1.0.0
* @package hangar-wp-plugin
* @subpackage hangar-wp-plugin/includes
*/
/**
* Add mimetypes support: svg
*
* This class defines all code necessary to run during the plugin's activation.
*
* @since 1.0.0
* @package hangar-wp-plugin
* @subpackage hangar-wp-plugin/includes
* @author Jorge - vitrubio.net <jorge@vitrubio.net>
*/
function hangar_enable_mime_types( $mimes ) {
$mimes['svg'] = 'image/svg+xml';
return $mimes;
}
add_filter('upload_mimes', 'hangar_enable_mime_types');

View File

@ -0,0 +1,25 @@
<?php
/**
* Load translation, if it exists
*
* @link https://hangar.org
* @since 1.0.0
* @package hangar-wp-plugin
* @subpackage hangar-wp-plugin/includes
*/
/**
* Load translation, if it exists
*
* This class defines all code necessary to run during the plugin's activation.
*
* @since 1.0.0
* @package hangar-wp-plugin
* @subpackage hangar-wp-plugin/includes
* @author Jorge - vitrubio.net <jorge@vitrubio.net>
*/
function hangar_init_textdomain() {
load_plugin_textdomain( 'hangar-wpplugin', null, plugin_dir_path( __FILE__ ).'/assets/languages/' );
}
add_action('plugins_loaded', 'hangar_init_textdomain');

View File

@ -0,0 +1,26 @@
<?php
/**
* Registers admin stylesheet for a custom plugin.
*
* @link https://hangar.org
* @since 1.0.0
*
* @package hangar-wp-plugin
* @subpackage hangar-wp-plugin/includes
*/
/**
* Registers admin stylesheet for a custom plugin.
*
* This class defines all code necessary to run during the plugin's activation.
*
* @since 1.0.0
* @package hangar-wp-plugin
* @subpackage hangar-wp-plugin/includes
* @author Jorge - vitrubio.net <jorge@vitrubio.net>
*/
function hangar_admin_styles() {
add_editor_style( 'assets/css/hangar-wpplugin-admin-styles.css' );
}
add_action( 'admin_init', 'hangar_admin_styles' );

View File

@ -0,0 +1,26 @@
<?php
/**
* Registers public stylesheet for a custom plugin.
*
* @link https://hangar.org
* @since 1.1.0
*
* @package hangar_wp-plugin
* @subpackage hangar_wp-plugin/includes
*/
/**
* Registers public stylesheet for a custom plugin.
*
* This class defines all code necessary to run during the plugin's activation.
*
* @since 1.1.0
* @package hangar_wp-plugin
* @subpackage hangar_wp-plugin/includes
* @author Jorge - vitrubio.net <jorge@vitrubio.net>
*/
function hangar_public_styles() {
add_editor_style( 'assets/css/hangar-wpplugin-styles.css' );
}
add_action( 'admin_init', 'hangar_public_styles' );

View File

@ -0,0 +1,109 @@
<?php
/******************************************************************************
New Plugin Name: Hangar tag pages and show tagged content in pages
New Plugin URI: https://git.hangar.org
New Description: Add tags to Pages, just as you would do with Posts
License: GPLv2 or later
*******************************************************************************
Adding tags to pages based on the work of:
Original Plugin Name: Tag Pages
Original Plugin URI: https://burobjorn.nl
Original WP Plugin URI: https://wordpress.org/plugins/tag-pages/
Original Version: 1.0.2
Original Author: Bjorn Wijers <burobjorn at burobjorn dot nl>
Original Author URI: https://burobjorn.nl
******************************************************************************/
/* Copyright 2012
Tag Pages is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
Tag Pages is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
/**
* Add the 'post_tag' taxonomy, which is the name of the existing taxonomy
* used for tags to the Post type page. Normally in WordPress Pages cannot
* be tagged, but this let's WordPress treat Pages just like Posts
* and enables the tags metabox so you can add tags to a Page.
* NB: This uses the register_taxonomy_for_object_type() function which is only
* in WordPress 3 and higher!
*/
// add tag and category support to pages
if( ! function_exists ('hangar_category_tags_support_all') ){
function hangar_category_tags_support_all()
{
register_taxonomy_for_object_type('post_tag', 'page');
register_taxonomy_for_object_type('category', 'page');
}
add_action('init', 'hangar_category_tags_support_all');
}
// ensure all pages are included in tag and category queries
if( ! function_exists ('hangar_category_tags_support_query') ){
function hangar_category_tags_support_query($wp_query) {
if ($wp_query->get('tag')) $wp_query->set('post_type', 'any');
if ($wp_query->get('category')) $wp_query->set('post_type', 'any');
}
add_action('pre_get_posts', 'hangar_category_tags_support_query');
}
/**
* Display all post_types on the tags archive page. This forces WordPress to
* show tagged Pages together with tagged Posts. Thanks to Page Tagger by
* Ramesh Nair: http://wordpress.org/extend/plugins/page-tagger/
*/
if( ! function_exists('hangar_tagpages_display_tagged_pages_archive') ){
function hangar_tagpages_display_tagged_pages_archive(&$query)
{
if ( !is_admin() && $query->is_archive && $query->is_tag ) {
$q = &$query->query_vars;
$q['post_type'] = 'any';
}
}
add_action('pre_get_posts', 'hangar_tagpages_display_tagged_pages_archive');
}
// show category using shortcode
// https://stackoverflow.com/a/13996873
if( ! function_exists('hangar_show_categoriced') ){
function hangar_show_categoriced()
{
add_shortcode('hangar-catlist', function($atts, $content) {
$atts += array('category' => 1);
$posts = get_posts("category={$atts['category']}");
foreach ($posts as $post) {
echo $post->post_name . '<br />';
}
});
echo do_shortcode('[hangar-catlist category=5]');
}
}
if( ! function_exists('hangar_show_tagged') ){
function hangar_show_tagged()
{
add_shortcode('hangar-taglist', function($atts, $content) {
$atts += array('tag' => 1);
$posts = get_posts("tag={$atts['tag']}");
foreach ($posts as $post) {
echo $post->post_name . '<br />';
}
});
echo do_shortcode('[hangar-taglist tag=5]');
}
}

View File

@ -0,0 +1,127 @@
<?php
/*
Plugin Name: category post shortcode
Plugin URI: http://ibnuyahya.com/wordpress-plugins/category-post-shortcode/
wp Plugin URI: https://wordpress.org/plugins/category-post-shortcode/
Description: To display post by category in your page/post
Author: ibnuyahya
Author URI: http://ibnuyahya.com/
Version: 2.4
Contributors
Ben McFadden - https://github.com/mcfadden
*/
/*
*
* How to use
* =============================================================================
* just put this shortcode in your post or pages
*
* [cat totalposts="3" category="1,3" thumbnail="true" excerpt="true" ]
*
* totalposts - your total number of post to display. default is -1
* category - category id. use comma , for multiple id
* thumbnail - set true if you want to display thumbnail. default is false
* thumbnail_height - image size for the thumbnail. default is 130
* thumbnail_width - image size for the thumbnail. default is 130
* excerpt - set true if you want to display excertp. default is true
* date - set true if you want to display post date. default is false
* orderby - your post will order by . default post_date . check http://codex.wordpress.org/Template_Tags/get_posts for detail
* order - asc | desc
*
* thumbnail
* =============================================================================
* create custom field key as thumbnail-url and put your thumbnail url in the value area
*
* style at your own
* =============================================================================
* you need to style your category-post-shortcode plugin in your style.css example
.cat-post{
width:100%;
}
.cat-post-list{
display: block;
margin-bottom: 20px;
position: relative;
}
.cat-post-images{
float:left;
width:140px;
display:block;
}
.cat-content{
width:350px;
float:right;
}
.cat-post-title{
display: block;
width:100%;
}
.cat-post-date
display: block;
width:100%;
}
.cat-clear{
clear:both;
}
*/
function cat_func($atts) {
extract(shortcode_atts(array(
'class_name' => 'cat-post',
'totalposts' => '-1',
'category' => '',
'thumbnail' => 'false',
'thumbnail_height' => '130',
'thumbnail_width' => '130',
'date' => 'false',
'excerpt' => 'true',
'orderby' => 'post_date',
'order' => 'desc'
), $atts));
$output = '<div class="'.$class_name.'">';
global $post;
$tmp_post = $post;
$myposts = get_posts("numberposts=$totalposts&category=$category&orderby=$orderby&order=$order");
foreach($myposts as $post) {
setup_postdata($post);
$output .= '<div class="cat-post-list">';
if($thumbnail == 'true') {
$thumb_image = get_post_meta($post->ID, 'thumbnail-url',true);
if(empty($thumb_image)){
preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches);
$thumb_image = $matches [1] [0];
}
if(empty($thumb_image)){
$thumb_image ='';
}
$output .= '<div class="cat-post-images"><img height="'.$thumbnail_height.'" width="'.$thumbnail_width.'" src="'.$thumb_image.'" /></div>';
}
$output .= '<div class="cat-content"><span class="cat-post-title"><a href="'.get_permalink().'">'.get_the_title().'</a></span>';
if ($date == 'true') {
$output .= '<span class="cat-post-date">'.get_the_date().'</span>';
}
if ($excerpt == 'true') {
$output .= '<span class="cat-post-excerpt">'.get_the_excerpt().'</span>';
}
$output .= '</div>
<div class="cat-clear"></div>
</div>';
};
$output .= '</div>';
$post = $tmp_post;
wp_reset_query();
return $output;
}
add_shortcode('cat', 'cat_func');
?>

23
uninstall.php Normal file
View File

@ -0,0 +1,23 @@
<?php
/*
howto uninstall the pluggin
https://developer.wordpress.org/plugins/plugin-basics/uninstall-methods/
*/
// if uninstall.php is not called by WordPress, die
if (!defined('WP_UNINSTALL_PLUGIN')) {
die;
}
$option_name = 'wporg_option';
delete_option($option_name);
// for site options in Multisite
delete_site_option($option_name);
// drop a custom database table
global $wpdb;
$wpdb->query("DROP TABLE IF EXISTS {$wpdb->prefix}mytable");
?>