Commit cdc53d43 authored by ale's avatar ale Committed by lucha

[auto] Plugin: simply-exclude 2.0.6.6

parent 15cc7b5d
......@@ -2,9 +2,9 @@
Contributors: pmenard
Donate link: http://www.codehooligans.com
Tags: admin, posts, pages, categories, tags, Post Type, Taxonomy, exclude, include, is_front, is_archive, is_search, is_feed, is_author
Requires at least: 3.7
Tested up to: 3.9
Stable tag: 2.0.6.2
Requires at least: 3.9
Tested up to: 4.2
Stable tag: 2.0.6.6
License: GPLv2
License URI: http://www.opensource.org/licenses/GPL-2.0
......@@ -50,6 +50,19 @@ At the time (version 1.6.1) the plugin only effects Pages included in the tradit
== Changelog ==
= 2.0.6.6 =
- Corrected bug introduced via 2.0.6.4 and 2.0.6.5
= 2.0.6.5 =
- DO NOT USE.
= 2.0.6.4 =
- Corrected issue reported related to Missing argument 2 for SimplyExclude::se_widget_getarchives_where()
- Added a filter 'se_filters_priority' to allow control the priority of the se_filter hook. This can also be set via a define in wp-config.php or functions.php as define('SE_FILTERS_PRIORITY', 99);
= 2.0.6.3 =
- Updated logic such that excluding posts for Archive will also automatically exclude post from Archive Widget. This way you don't get links showing from the widget that cause 404 errors. See support thread https://wordpress.org/support/topic/archive-month-shows-when-all-posts-in-month-are-excluded-giving-404-error
= 2.0.6.2 =
- Corrected reported issue related to undefined 'action' settings in the widget hooks. Thanks Arnold.
- Cleanup some of the CSS related to settings used within the dashboard area.
......
......@@ -4,8 +4,13 @@ Plugin Name: Simply Exclude
Plugin URI: http://www.codehooligans.com/projects/wordpress/simply-exclude/
Description: Provides an interface to selectively exclude/include all Taxonomies, Post Types and Users from the 4 actions used by WordPress. is_front, is_archive, is_search, is_feed. Also provides access to some of the common widgets user like tag cloud and categories listings.
Author: Paul Menard
Version: 2.0.6.2
Version: 2.0.6.6
Author URI: http://www.codehooligans.com
Text Domain: simplyexclude
Domain Path: /languages
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
*/
define('SIMPLY_EXCLUDE_I18N_DOMAIN', 'simplyexclude');
......@@ -32,7 +37,7 @@ class SimplyExclude
public function __construct() {
$this->se_version = "2.0.6.2";
$this->se_version = "2.0.6.6";
$this->admin_menu_label = __("Simply Exclude", SIMPLY_EXCLUDE_I18N_DOMAIN);
$this->options_key = "simplyexclude_v2";
......@@ -53,8 +58,17 @@ class SimplyExclude
add_action( 'admin_footer', array(&$this,'se_admin_footer') );
add_action( 'wp_ajax_se_update', array(&$this, 'se_ajax_update') );
// In 2.0.6.4 added a define to allow control of the SE_FILTERS_PRIORITY
//https://wordpress.org/support/topic/first-install-problems-in-wordpress-40?replies=3#post-6579114
if (defined('SE_FILTERS_PRIORITY'))
$SE_FILTERS_PRIORITY = intval(SE_FILTERS_PRIORITY);
else {
$SE_FILTERS_PRIORITY = 999;
}
$SE_FILTERS_PRIORITY = apply_filters('se_filters_priority', $SE_FILTERS_PRIORITY);
// Used to limit the categories displayed on the home page. Simple
add_filter('pre_get_posts', array(&$this,'se_filters'), 999);
add_filter('pre_get_posts', array($this,'se_filters'), $SE_FILTERS_PRIORITY);
}
function admin_init_proc()
......@@ -126,6 +140,10 @@ class SimplyExclude
// Support for the Tag Clod widget. This widget supports both the post_tag and category taxonomies.
add_filter('widget_tag_cloud_args', array(&$this, 'se_widget_tag_cloud_args_proc'));
// Support for Archive widget. This widget will output a month or year archive listing/dropdown of posts
add_filter('getarchives_where', array($this, 'se_widget_getarchives_where'), 99);
}
}
......@@ -1663,6 +1681,7 @@ class SimplyExclude
$taxonomy_actions['is_archive'] = "e";
$taxonomy_actions['is_search'] = "e";
$taxonomy_actions['is_feed'] = "e";
//$taxonomy_actions['widget_archives'] = "e";
}
else if ($post_type == "page")
{
......@@ -1909,6 +1928,25 @@ class SimplyExclude
return;
break;
case 'widget_archives':
if ($post_type == "post") {
switch($key)
{
case 'name':
return __("Widget: Archives", SIMPLY_EXCLUDE_I18N_DOMAIN);
break;
case 'description':
return __("Exclude from Post Archives Widget.", SIMPLY_EXCLUDE_I18N_DOMAIN);
default:
return;
}
}
return;
break;
default:
return;
break;
......@@ -2338,8 +2376,9 @@ class SimplyExclude
&& (count($this->se_cfg['data']['post_types']['page']['terms']['widget_pages'])) )
{
//echo "se_cfg<pre>"; print_r($this->se_cfg['data']['post_types']['page']); echo "</pre>";
//die();
$action = $this->se_cfg['data']['post_types']['page']['actions']['widget_pages']['action'];
$action = $this->se_cfg['data']['post_types']['page']['actions']['widget_pages'];
$terms = $this->se_listify_ids(array_keys($this->se_cfg['data']['post_types']['page']['terms']['widget_pages']), 'i');
//echo "terms<pre>"; print_r($terms); echo "</pre>";
if ($action == "e")
......@@ -2494,9 +2533,73 @@ class SimplyExclude
return $args;
}
function se_widget_getarchives_where($where_sql) {
if (is_admin()) return $where_sql;
//echo "where_sql[". $where_sql ."]<br />";
//echo "args<pre>"; print_r($args); echo "</pre>";
$this->se_load_config();
//echo "se_cfg<pre>"; print_r($this->se_cfg); echo "</pre>";
$action_data = $this->se_get_action_data('is_archive');
//echo "action_data<pre>"; print_r($action_data); echo "</pre>";
//die();
$post__in = array();
$post__not_in = array();
if ($action_data) {
foreach($action_data as $key => $key_data) {
if ($key == "post_types") {
foreach($key_data as $key_key => $key_key_data) {
//echo "key_key[". $key_key ."]<br />";
//echo "key_key_data<pre>"; print_r($key_key_data); echo "</pre>";
if ($key_key_data['actions'] == 'e') {
$post__not_in = array_merge($post__not_in, $key_key_data['terms']);
} else if ($key_key_data['actions'] == 'i') {
$post__in = array_merge($post__in, $key_key_data['terms']);
}
}
} else if ($key == "taxonomies") {
foreach($key_data as $key_key => $key_key_data) {
//echo "key_key[". $key_key ."]<br />";
//echo "key_key_data<pre>"; print_r($key_key_data); echo "</pre>";
if ((isset($key_key_data['terms'])) && (!empty($key_key_data['terms']))) {
$posts_ids = get_objects_in_term( $key_key_data['terms'], $key_key );
if ( !is_wp_error( $posts_ids ) ) {
//echo "posts_ids<pre>"; print_r($posts_ids); echo "</pre>";
if ($key_key_data['actions'] == 'e') {
$post__not_in = array_merge($post__not_in, $posts_ids);
} else if ($key_key_data['actions'] == 'i') {
$post__in = array_merge($post__in, $posts_ids);
}
}
}
}
}
}
}
if (!empty($post__not_in)) {
//echo "post__not_in<pre>"; print_r($post__not_in); echo "</pre>";
$where_sql .= " AND ID NOT IN(". implode(',', $post__not_in) .") ";
} else if (!empty($post__in)) {
//echo "post__in<pre>"; print_r($post__in); echo "</pre>";
$where_sql .= " AND ID IN(". implode(',', $post__not_in) .") ";
}
//echo "where_sql[". $where_sql ."]<br />";
return $where_sql;
}
function se_admin_footer()
{
if ( !current_user_can('manage_options') )
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment