Quantcast
Channel: WordPress › Support » Forum: Hacks - Recent Topics
Viewing all 8245 articles
Browse latest View live

dgcov on "Function shortcut not working for ordinary user."

0
0

I have implemented a function with the code:

`add_shortcode('list_user_data','user_data');'

My page contains the shortcut code:[list_user_data]

The Admin user is presented with the page rendered as per the function.

The ordinary user is presented with a page which simply contains only the shortcode enclosed in brackets:
[list_user_data]


agenciaklox on "Callback function doesnt works"

0
0

Hey guys,

I'm developing my first wordpress plugin and i need to use Ajax, but i've already know how to do it.

But i'm getting an error, i create a callback function to test with is it working, but i always get a "0" as response text.

The code is this

add_action( 'wp', 'wcwp_register_scripts');
function wcwp_register_scripts( ) {

        wp_register_script( 'wcwp-js', plugins_url('js/wcwp_buscar_cidade.js', __FILE__), array('jquery') );

        wp_enqueue_script( 'jquery' );

	wp_enqueue_script( 'wcwp-js' );

}

function wcwp_state_proccess( ) {

	echo "You selected state ". $_POST['stateId'];

	exit();

}

I have a selectbox, that works well, when i change my select box, my javascript needs to get the value 'stateId' and returns it to me on wcwp_state_proccess(); It's just to test if its works, but it never shows me the right value, just show me 0

My js script is:

jQuery(document).ready(function($) {

    $('#select_state_withdrawal_point').change(function(e) {
    	var state = document.getElementById("select_state_withdrawal_point");
		var iten = state.options[state.selectedIndex].value;
    	$.post(document.location.protocol+'//'+document.location.host+'/projetos/dgiprint/wp-admin/admin-ajax.php', {action: 'wcwp_state', stateId: iten}, function(response){

    		alert(response);

    	})

    });

});

And to test you need to access http://marcelloruoppolo.in/projetos/dgiprint and add a product to cart, go to checkout and select "Ship to a different address?" at the end of the page will appear a 'Withdrawal Point' option.

My plugin works with WooCommerce, it gives you to have a option to select a Withdrawal point, i need it for a client and don't find anything so i decided to create it, i will share it for free on wordpress plugins when its ready :D

If anybody can help me, i would apprecciate that :D

zbbo on "How to add a custom data box in widgets area"

0
0

Hi everybody,

I'm a novice in coding and have little PHP experience, not sure if this is the right forum to ask this; I would appreciate any helpful suggestions.

I have a WordPress website for an online store, but it's not an e-commerce system installed. We send the ordered items with TNT. TNT has an online tracking system for the posted items with a tracking id for each item. I was wondering if there are any plugins or widgets allowing me to put a text box in widgets area, so that my customers can enter their TNT tracking id, for example "449860061", and it redirects them to TNT tracking page at:
http://www.tnt.com/webtracker/tracking.do#449860061:1

Many thanks.

Tche111 on "Add 1 meta to comments // Show comments by that meta"

0
0

Hi everybody,
On our website (allwewish.org), we are gathering wishes and solutions; Since 2009, I set the solutions that I receive by comments or emails or that I find on the web in the post (1post = 1wish) they relate to.
Today I am analysing the possibility of using the comments tool as a direct solution feed. I have already managed to add a title to the comment and to show that title in wp_comment_list but to go further in the integration I would need your advise and help:

1. To add a new meta that would look like a sort of category for the solutions proposed (example: lack of money, lack of time, lack of health or in any case)
This doesnt look to difficult to me as I think I could basically apply the same solution than the one I use to give a title to the comments.
I would just need to settle the 4 categories allowed as in a droplist as explained in the following tutorial:
http://www.bobz.co/dynamically-populate-select-fields-choice-in-advanced-custom-fields/

2. To show the new comments below the post according to their "category"
Either with each category shown as a tab on which the reader should click to see the relevant solutions
Or with all the comments shown in a list, classified per "category" with each category shown as the title of its group...

Have you ever done something similar? Would you happen to have a solution or a tutorial to manage the 2nd issue?
(I have looked on the web a lot without success but maybe using wrong keywords)

Many thanks in advance for your help!
Wishing you a nice day

CDines13 on "PHP for Twenty Fourteen Word Press Theme"

0
0

Dear Word Press,

Before I install the Twenty Fourteen Word Press Theme, how can I find out what PHP the theme has? I need a new theme which is compatible with the most recent PHP for security reasons.

Thanks

rkumbhar on "Adding script to backend pages"

0
0

Hi,
I have a script that allows user to write in my preferred langauge.
When I enter that script in widget, it works fine for frontend pages (comments)

But I wish to integrate the script to backend pages where the user can create new post and start typing in the preferred language.
Can any one help how to embed the script for the backend pages?

Thanks

magictidde on "update record in database"

0
0

Hello! Please help me understand, trying to write simple counter views plugin, but i have small problem.
Why is counter "views" no increase by one?

add_action('wp_head', 'nopvys_views');
function nopvys_views() {
	global $post;
	if(is_int($post))
	{
	$post = get_post($post);
	}
	if(!wp_is_post_revision($post)) {
		if(is_single() || is_page()) {
			$id = intval($post->ID);
			global $wpdb;
			$ip=$_SERVER['REMOTE_ADDR'];
			global $wpdb;
			$query=$wpdb->get_row($wpdb->prepare("select * from ".$wpdb->prefix."views_date where post_id=$id AND ip_address='$ip' AND date(view_date)=DATE(NOW())", null));
			if(!$query)
			{
            $wpdb->insert($wpdb->prefix."views_date",
			array(
			'post_id' =>$id,
			'ip_address'=>$ip,
		    'view_date'=> date( 'Y-m-d H:i:s')
		          ),
				  array('%s', '%s', '%s'));
            $thepost = $wpdb->get_row( $wpdb->prepare("select * from ".$wpdb->prefix."views_count where post_id=$id AND hosts='$hs' AND views='$vs'",null));
			$hs=$thepost->hosts;
			$vs=$thepost->views;
            if(!$thepost)
            {
			   	$wpdb->insert($wpdb->prefix."views_count",
                array(
				'post_id' =>$id,
		        'hosts'=> 1,
				'views'=> 1
		             ),
					 array('%s', '%d', '%d'));
            }
			$current_ip = $wpdb->get_var("select ip_id from ".$wpdb->prefix."views_date where ip_address='$ip'");
			if($current_ip == 1)
            {
				$wpdb->update($wpdb->prefix."views_count",
                array( 'views' => 'views'+1),
                array( 'post_id' => $id ),
                array( '%d' ),
                array( '%d' )
                     );
            }
			}
		}
	}
}

JeffSydor-BIPC on "Import External Child Theme"

0
0

I was presented with an interesting question that I cannot answer.

If we have multiple blogs that all use the same child theme, can the theme files be referenced in the theme's directory without needing to copy the theme files to each wordpress blog? This way the files would need to be updated in one place rather than a multiple of places.

I'm assuming that this would not be ideal, but I wanted to ask anyway. I think this stemmed from the use of the @import command in the primary stylesheet.

Thanks


ajinp on "suspicious file : nav-menu.php"

0
0

Hello All,

In my WordPress installation, malware scan has detected a file called "nav-menu.php". When I removed the file, the site is not working. Can any one tell me what is the use of this file?

It shows the following error.
===================================================================

Warning: require(/home/user/public_html/wp-includes/nav-menu.php): failed to open stream: No such file or directory in /home/user/public_html/wp-settings.php on line 153

===================================================================

I am pasting the content of this php file here.

===================================================================

* @subpackage Nav_Menus
* @since 3.0.0
*/

/**
* Returns a navigation menu object.
*
* @since 3.0.0
*
* @uses get_term
* @uses get_term_by
*
* @param string $menu Menu ID, slug, or name.
* @return mixed false if $menu param isn't supplied or term does not exist, menu object if successful.
*/
function wp_get_nav_menu_object( $menu ) {
if ( ! $menu )
return false;

$menu_obj = get_term( $menu, 'nav_menu' );

if ( ! $menu_obj )
$menu_obj = get_term_by( 'slug', $menu, 'nav_menu' );

if ( ! $menu_obj )
$menu_obj = get_term_by( 'name', $menu, 'nav_menu' );

if ( ! $menu_obj )
$menu_obj = false;

return $menu_obj;
}

/**
* Check if the given ID is a navigation menu.
*
* Returns true if it is; false otherwise.
*
* @since 3.0.0
*
* @param int|string $menu The menu to check (ID, slug, or name).
* @return bool Whether the menu exists.
*/
function is_nav_menu( $menu ) {
if ( ! $menu )
return false;

$menu_obj = wp_get_nav_menu_object( $menu );

if (
$menu_obj &&
! is_wp_error( $menu_obj ) &&
! empty( $menu_obj->taxonomy ) &&
'nav_menu' == $menu_obj->taxonomy
)
return true;

return false;
}

/**
* Register navigation menus for a theme.
*
* @since 3.0.0
*
* @param array $locations Associative array of menu location identifiers (like a slug) and descriptive text.
*/
function register_nav_menus( $locations = array() ) {
global $_wp_registered_nav_menus;

add_theme_support( 'menus' );

$_wp_registered_nav_menus = array_merge( (array) $_wp_registered_nav_menus, $locations );
}

/**
* Unregisters a navigation menu for a theme.
*
* @param array $location the menu location identifier
*
* @return bool True on success, false on failure.
*/
function unregister_nav_menu( $location ) {
global $_wp_registered_nav_menus;

if ( is_array( $_wp_registered_nav_menus ) && isset( $_wp_registered_nav_menus[$location] ) ) {
unset( $_wp_registered_nav_menus[$location] );
if ( empty( $_wp_registered_nav_menus ) ) {
_remove_theme_support( 'menus' );
}
return true;
}
return false;
}

/**
* Register a navigation menu for a theme.
*
* @since 3.0.0
*
* @param string $location Menu location identifier, like a slug.
* @param string $description Menu location descriptive text.
*/
function register_nav_menu( $location, $description ) {
register_nav_menus( array( $location => $description ) );
}
/**
* Returns an array of all registered navigation menus in a theme
*
* @since 3.0.0
* @return array
*/
function get_registered_nav_menus() {
global $_wp_registered_nav_menus;
if ( isset( $_wp_registered_nav_menus ) )
return $_wp_registered_nav_menus;
return array();
}

/**
* Returns an array with the registered navigation menu locations and the menu assigned to it
*
* @since 3.0.0
* @return array
*/

function get_nav_menu_locations() {
$locations = get_theme_mod( 'nav_menu_locations' );
return ( is_array( $locations ) ) ? $locations : array();
}

/**
* Whether a registered nav menu location has a menu assigned to it.
*
* @since 3.0.0
* @param string $location Menu location identifier.
* @return bool Whether location has a menu.
*/
function has_nav_menu( $location ) {
global $_wp_registered_nav_menus;

if ( ! isset( $_wp_registered_nav_menus[ $location ] ) ) {
return false;
}

$locations = get_nav_menu_locations();
return ( ! empty( $locations[ $location ] ) );
}

/**
* Determine whether the given ID is a nav menu item.
*
* @since 3.0.0
*
* @param int $menu_item_id The ID of the potential nav menu item.
* @return bool Whether the given ID is that of a nav menu item.
*/
function is_nav_menu_item( $menu_item_id = 0 ) {
return ( ! is_wp_error( $menu_item_id ) && ( 'nav_menu_item' == get_post_type( $menu_item_id ) ) );
}

/**
* Create a Navigation Menu.
*
* @since 3.0.0
*
* @param string $menu_name Menu name.
* @return int|WP_Error Menu ID on success, WP_Error object on failure.
*/
function wp_create_nav_menu( $menu_name ) {
return wp_update_nav_menu_object( 0, array( 'menu-name' => $menu_name ) );
}

/**
* Delete a Navigation Menu.
*
* @since 3.0.0
*
* @param string $menu Menu ID, slug, or name.
* @return bool|WP_Error True on success, false or WP_Error object on failure.
*/
function wp_delete_nav_menu( $menu ) {
$menu = wp_get_nav_menu_object( $menu );
if ( ! $menu )
return false;

$menu_objects = get_objects_in_term( $menu->term_id, 'nav_menu' );
if ( ! empty( $menu_objects ) ) {
foreach ( $menu_objects as $item ) {
wp_delete_post( $item );
}
}

$result = wp_delete_term( $menu->term_id, 'nav_menu' );

// Remove this menu from any locations.
$locations = get_nav_menu_locations();
foreach ( $locations as $location => $menu_id ) {
if ( $menu_id == $menu->term_id )
$locations[ $location ] = 0;
}
set_theme_mod( 'nav_menu_locations', $locations );

if ( $result && !is_wp_error($result) )

/**
* Fires after a navigation menu has been successfully deleted.
*
* @since 3.0.0
*
* @param int $term_id ID of the deleted menu.
*/
do_action( 'wp_delete_nav_menu', $menu->term_id );

return $result;
}

/**
* Save the properties of a menu or create a new menu with those properties.
*
* @since 3.0.0
*
* @param int $menu_id The ID of the menu or "0" to create a new menu.
* @param array $menu_data The array of menu data.
* @return int|WP_Error Menu ID on success, WP_Error object on failure.
*/
function wp_update_nav_menu_object( $menu_id = 0, $menu_data = array() ) {
$menu_id = (int) $menu_id;

$_menu = wp_get_nav_menu_object( $menu_id );

$args = array(
'description' => ( isset( $menu_data['description'] ) ? $menu_data['description'] : '' ),
'name' => ( isset( $menu_data['menu-name'] ) ? $menu_data['menu-name'] : '' ),
'parent' => ( isset( $menu_data['parent'] ) ? (int) $menu_data['parent'] : 0 ),
'slug' => null,
);

// double-check that we're not going to have one menu take the name of another
$_possible_existing = get_term_by( 'name', $menu_data['menu-name'], 'nav_menu' );
if (
$_possible_existing &&
! is_wp_error( $_possible_existing ) &&
isset( $_possible_existing->term_id ) &&
$_possible_existing->term_id != $menu_id
)
return new WP_Error( 'menu_exists', sprintf( __('The menu name %s conflicts with another menu name. Please try another.'), esc_html( $menu_data['menu-name'] ) ) );

// menu doesn't already exist, so create a new menu
if ( ! $_menu || is_wp_error( $_menu ) ) {
$menu_exists = get_term_by( 'name', $menu_data['menu-name'], 'nav_menu' );

if ( $menu_exists )
return new WP_Error( 'menu_exists', sprintf( __('The menu name %s conflicts with another menu name. Please try another.'), esc_html( $menu_data['menu-name'] ) ) );

$_menu = wp_insert_term( $menu_data['menu-name'], 'nav_menu', $args );

if ( is_wp_error( $_menu ) )
return $_menu;

/**
* Fires after a navigation menu is successfully created.
*
* @since 3.0.0
*
* @param int $term_id ID of the new menu.
* @param array $menu_data An array of menu data.
*/
do_action( 'wp_create_nav_menu', $_menu['term_id'], $menu_data );

return (int) $_menu['term_id'];
}

if ( ! $_menu || ! isset( $_menu->term_id ) )
return 0;

$menu_id = (int) $_menu->term_id;

$update_response = wp_update_term( $menu_id, 'nav_menu', $args );

if ( is_wp_error( $update_response ) )
return $update_response;

/**
* Fires after a navigation menu has been successfully updated.
*
* @since 3.0.0
*
* @param int $menu_id ID of the updated menu.
* @param array $menu_data An array of menu data.
*/
do_action( 'wp_update_nav_menu', $menu_id, $menu_data );
return $menu_id;
}

/**
* Save the properties of a menu item or create a new one.
*
* @since 3.0.0
*
* @param int $menu_id The ID of the menu. Required. If "0", makes the menu item a draft orphan.
* @param int $menu_item_db_id The ID of the menu item. If "0", creates a new menu item.
* @param array $menu_item_data The menu item's data.
* @return int|WP_Error The menu item's database ID or WP_Error object on failure.
*/
function wp_update_nav_menu_item( $menu_id = 0, $menu_item_db_id = 0, $menu_item_data = array() ) {
$menu_id = (int) $menu_id;
$menu_item_db_id = (int) $menu_item_db_id;

// make sure that we don't convert non-nav_menu_item objects into nav_menu_item objects
if ( ! empty( $menu_item_db_id ) && ! is_nav_menu_item( $menu_item_db_id ) )
return new WP_Error( 'update_nav_menu_item_failed', __( 'The given object ID is not that of a menu item.' ) );

$menu = wp_get_nav_menu_object( $menu_id );

if ( ! $menu && 0 !== $menu_id ) {
return new WP_Error( 'invalid_menu_id', __( 'Invalid menu ID.' ) );
}

if ( is_wp_error( $menu ) ) {
return $menu;
}

$defaults = array(
'menu-item-db-id' => $menu_item_db_id,
'menu-item-object-id' => 0,
'menu-item-object' => '',
'menu-item-parent-id' => 0,
'menu-item-position' => 0,
'menu-item-type' => 'custom',
'menu-item-title' => '',
'menu-item-url' => '',
'menu-item-description' => '',
'menu-item-attr-title' => '',
'menu-item-target' => '',
'menu-item-classes' => '',
'menu-item-xfn' => '',
'menu-item-status' => '',
);

$args = wp_parse_args( $menu_item_data, $defaults );

if ( 0 == $menu_id ) {
$args['menu-item-position'] = 1;
} elseif ( 0 == (int) $args['menu-item-position'] ) {
$menu_items = 0 == $menu_id ? array() : (array) wp_get_nav_menu_items( $menu_id, array( 'post_status' => 'publish,draft' ) );
$last_item = array_pop( $menu_items );
$args['menu-item-position'] = ( $last_item && isset( $last_item->menu_order ) ) ? 1 + $last_item->menu_order : count( $menu_items );
}

$original_parent = 0 < $menu_item_db_id ? get_post_field( 'post_parent', $menu_item_db_id ) : 0;

if ( 'custom' != $args['menu-item-type'] ) {
/* if non-custom menu item, then:
* use original object's URL
* blank default title to sync with original object's
*/

$args['menu-item-url'] = '';

$original_title = '';
if ( 'taxonomy' == $args['menu-item-type'] ) {
$original_parent = get_term_field( 'parent', $args['menu-item-object-id'], $args['menu-item-object'], 'raw' );
$original_title = get_term_field( 'name', $args['menu-item-object-id'], $args['menu-item-object'], 'raw' );
} elseif ( 'post_type' == $args['menu-item-type'] ) {

$original_object = get_post( $args['menu-item-object-id'] );
$original_parent = (int) $original_object->post_parent;
$original_title = $original_object->post_title;
}

if ( $args['menu-item-title'] == $original_title )
$args['menu-item-title'] = '';

// hack to get wp to create a post object when too many properties are empty
if ( '' == $args['menu-item-title'] && '' == $args['menu-item-description'] )
$args['menu-item-description'] = ' ';
}

// Populate the menu item object
$post = array(
'menu_order' => $args['menu-item-position'],
'ping_status' => 0,
'post_content' => $args['menu-item-description'],
'post_excerpt' => $args['menu-item-attr-title'],
'post_parent' => $original_parent,
'post_title' => $args['menu-item-title'],
'post_type' => 'nav_menu_item',
);

$update = 0 != $menu_item_db_id;

// New menu item. Default is draft status
if ( ! $update ) {
$post['ID'] = 0;
$post['post_status'] = 'publish' == $args['menu-item-status'] ? 'publish' : 'draft';
$menu_item_db_id = wp_insert_post( $post );
if ( ! $menu_item_db_id || is_wp_error( $menu_item_db_id ) )
return $menu_item_db_id;
}

// Associate the menu item with the menu term
// Only set the menu term if it isn't set to avoid unnecessary wp_get_object_terms()
if ( $menu_id && ( ! $update || ! is_object_in_term( $menu_item_db_id, 'nav_menu', (int) $menu->term_id ) ) ) {
wp_set_object_terms( $menu_item_db_id, array( $menu->term_id ), 'nav_menu' );
}

if ( 'custom' == $args['menu-item-type'] ) {
$args['menu-item-object-id'] = $menu_item_db_id;
$args['menu-item-object'] = 'custom';
}

$menu_item_db_id = (int) $menu_item_db_id;

update_post_meta( $menu_item_db_id, '_menu_item_type', sanitize_key($args['menu-item-type']) );
update_post_meta( $menu_item_db_id, '_menu_item_menu_item_parent', strval( (int) $args['menu-item-parent-id'] ) );
update_post_meta( $menu_item_db_id, '_menu_item_object_id', strval( (int) $args['menu-item-object-id'] ) );
update_post_meta( $menu_item_db_id, '_menu_item_object', sanitize_key($args['menu-item-object']) );
update_post_meta( $menu_item_db_id, '_menu_item_target', sanitize_key($args['menu-item-target']) );

$args['menu-item-classes'] = array_map( 'sanitize_html_class', explode( ' ', $args['menu-item-classes'] ) );
$args['menu-item-xfn'] = implode( ' ', array_map( 'sanitize_html_class', explode( ' ', $args['menu-item-xfn'] ) ) );
update_post_meta( $menu_item_db_id, '_menu_item_classes', $args['menu-item-classes'] );
update_post_meta( $menu_item_db_id, '_menu_item_xfn', $args['menu-item-xfn'] );
update_post_meta( $menu_item_db_id, '_menu_item_url', esc_url_raw($args['menu-item-url']) );

if ( 0 == $menu_id )
update_post_meta( $menu_item_db_id, '_menu_item_orphaned', (string) time() );
elseif ( get_post_meta( $menu_item_db_id, '_menu_item_orphaned' ) )
delete_post_meta( $menu_item_db_id, '_menu_item_orphaned' );

// Update existing menu item. Default is publish status
if ( $update ) {
$post['ID'] = $menu_item_db_id;
$post['post_status'] = 'draft' == $args['menu-item-status'] ? 'draft' : 'publish';
wp_update_post( $post );
}

/**
* Fires after a navigation menu item has been updated.
*
* @since 3.0.0
*
* @see wp_update_nav_menu_items()
*
* @param int $menu_id ID of the updated menu.
* @param int $menu_item_db_id ID of the updated menu item.
* @param array $args An array of arguments used to update a menu item.
*/
do_action( 'wp_update_nav_menu_item', $menu_id, $menu_item_db_id, $args );

return $menu_item_db_id;
}

/**
* Returns all navigation menu objects.
*
* @since 3.0.0
*
* @param array $args Array of arguments passed on to get_terms().
* @return array menu objects
*/
function wp_get_nav_menus( $args = array() ) {
$defaults = array( 'hide_empty' => false, 'orderby' => 'none' );
$args = wp_parse_args( $args, $defaults );

/**
* Filter the navigation menu objects being returned.
*
* @since 3.0.0
*
* @see get_terms()
*
* @param array $menus An array of menu objects.
* @param array $args An array of arguments used to retrieve menu objects.
*/
return apply_filters( 'wp_get_nav_menus', get_terms( 'nav_menu', $args), $args );
}

/**
* Sort menu items by the desired key.
*
* @since 3.0.0
* @access private
*
* @param object $a The first object to compare
* @param object $b The second object to compare
* @return int -1, 0, or 1 if $a is considered to be respectively less than, equal to, or greater than $b.
*/
function _sort_nav_menu_items( $a, $b ) {
global $_menu_item_sort_prop;

if ( empty( $_menu_item_sort_prop ) )
return 0;

if ( ! isset( $a->$_menu_item_sort_prop ) || ! isset( $b->$_menu_item_sort_prop ) )
return 0;

$_a = (int) $a->$_menu_item_sort_prop;
$_b = (int) $b->$_menu_item_sort_prop;

if ( $a->$_menu_item_sort_prop == $b->$_menu_item_sort_prop )
return 0;
elseif ( $_a == $a->$_menu_item_sort_prop && $_b == $b->$_menu_item_sort_prop )
return $_a < $_b ? -1 : 1;
else
return strcmp( $a->$_menu_item_sort_prop, $b->$_menu_item_sort_prop );
}

/**
* Returns if a menu item is valid. Bug #13958
*
* @since 3.2.0
* @access private
*
* @param object $menu_item The menu item to check
* @return bool false if invalid, else true.
*/
function _is_valid_nav_menu_item( $item ) {
if ( ! empty( $item->_invalid ) )
return false;

return true;
}

/**
* Returns all menu items of a navigation menu.
*
* @since 3.0.0
*
* @param string $menu menu name, id, or slug
* @param string $args
* @return mixed $items array of menu items, else false.
*/
function wp_get_nav_menu_items( $menu, $args = array() ) {
$menu = wp_get_nav_menu_object( $menu );

if ( ! $menu )
return false;

static $fetched = array();

$items = get_objects_in_term( $menu->term_id, 'nav_menu' );

if ( empty( $items ) )
return $items;

$defaults = array( 'order' => 'ASC', 'orderby' => 'menu_order', 'post_type' => 'nav_menu_item',
'post_status' => 'publish', 'output' => ARRAY_A, 'output_key' => 'menu_order', 'nopaging' => true );
$args = wp_parse_args( $args, $defaults );
$args['include'] = $items;

$items = get_posts( $args );

if ( is_wp_error( $items ) || ! is_array( $items ) )
return false;

// Get all posts and terms at once to prime the caches
if ( empty( $fetched[$menu->term_id] ) || wp_using_ext_object_cache() ) {
$fetched[$menu->term_id] = true;
$posts = array();
$terms = array();
foreach ( $items as $item ) {
$object_id = get_post_meta( $item->ID, '_menu_item_object_id', true );
$object = get_post_meta( $item->ID, '_menu_item_object', true );
$type = get_post_meta( $item->ID, '_menu_item_type', true );

if ( 'post_type' == $type )
$posts[$object][] = $object_id;
elseif ( 'taxonomy' == $type)
$terms[$object][] = $object_id;
}

if ( ! empty( $posts ) ) {
foreach ( array_keys($posts) as $post_type ) {
get_posts( array('post__in' => $posts[$post_type], 'post_type' => $post_type, 'nopaging' => true, 'update_post_term_cache' => false) );
}
}
unset($posts);

if ( ! empty( $terms ) ) {
foreach ( array_keys($terms) as $taxonomy ) {
get_terms($taxonomy, array('include' => $terms[$taxonomy]) );
}
}
unset($terms);
}

$items = array_map( 'wp_setup_nav_menu_item', $items );

if ( ! is_admin() ) // Remove invalid items only in frontend
$items = array_filter( $items, '_is_valid_nav_menu_item' );

if ( ARRAY_A == $args['output'] ) {
$GLOBALS['_menu_item_sort_prop'] = $args['output_key'];
usort($items, '_sort_nav_menu_items');
$i = 1;
foreach( $items as $k => $item ) {
$items[$k]->$args['output_key'] = $i++;
}
}

/**
* Filter the navigation menu items being returned.
*
* @since 3.0.0
*
* @param array $items An array of menu item post objects.
* @param object $menu The menu object.
* @param array $args An array of arguments used to retrieve menu item objects.
*/
return apply_filters( 'wp_get_nav_menu_items', $items, $menu, $args );
}

/**
* Decorates a menu item object with the shared navigation menu item properties.
*
* Properties:
* - db_id: The DB ID of this item as a nav_menu_item object, if it exists (0 if it doesn't exist).
* - object_id: The DB ID of the original object this menu item represents, e.g. ID for posts and term_id for categories.
* - type: The family of objects originally represented, such as "post_type" or "taxonomy."
* - object: The type of object originally represented, such as "category," "post", or "attachment."
* - type_label: The singular label used to describe this type of menu item.
* - post_parent: The DB ID of the original object's parent object, if any (0 otherwise).
* - menu_item_parent: The DB ID of the nav_menu_item that is this item's menu parent, if any. 0 otherwise.
* - url: The URL to which this menu item points.
* - title: The title of this menu item.
* - target: The target attribute of the link element for this menu item.
* - attr_title: The title attribute of the link element for this menu item.
* - classes: The array of class attribute values for the link element of this menu item.
* - xfn: The XFN relationship expressed in the link of this menu item.
* - description: The description of this menu item.
*
* @since 3.0.0
*
* @param object $menu_item The menu item to modify.
* @return object $menu_item The menu item with standard menu item properties.
*/
function wp_setup_nav_menu_item( $menu_item ) {
if ( isset( $menu_item->post_type ) ) {
if ( 'nav_menu_item' == $menu_item->post_type ) {
$menu_item->db_id = (int) $menu_item->ID;
$menu_item->menu_item_parent = empty( $menu_item->menu_item_parent ) ? get_post_meta( $menu_item->ID, '_menu_item_menu_item_parent', true ) : $menu_item->menu_item_parent;
$menu_item->object_id = empty( $menu_item->object_id ) ? get_post_meta( $menu_item->ID, '_menu_item_object_id', true ) : $menu_item->object_id;
$menu_item->object = empty( $menu_item->object ) ? get_post_meta( $menu_item->ID, '_menu_item_object', true ) : $menu_item->object;
$menu_item->type = empty( $menu_item->type ) ? get_post_meta( $menu_item->ID, '_menu_item_type', true ) : $menu_item->type;

if ( 'post_type' == $menu_item->type ) {
$object = get_post_type_object( $menu_item->object );
if ( $object ) {
$menu_item->type_label = $object->labels->singular_name;
} else {
$menu_item->type_label = $menu_item->object;
$menu_item->_invalid = true;
}

$menu_item->url = get_permalink( $menu_item->object_id );

$original_object = get_post( $menu_item->object_id );
$original_title = $original_object->post_title;
$menu_item->title = '' == $menu_item->post_title ? $original_title : $menu_item->post_title;

} elseif ( 'taxonomy' == $menu_item->type ) {
$object = get_taxonomy( $menu_item->object );
if ( $object ) {
$menu_item->type_label = $object->labels->singular_name;
} else {
$menu_item->type_label = $menu_item->object;
$menu_item->_invalid = true;
}

$term_url = get_term_link( (int) $menu_item->object_id, $menu_item->object );
$menu_item->url = !is_wp_error( $term_url ) ? $term_url : '';

$original_title = get_term_field( 'name', $menu_item->object_id, $menu_item->object, 'raw' );
if ( is_wp_error( $original_title ) )
$original_title = false;
$menu_item->title = '' == $menu_item->post_title ? $original_title : $menu_item->post_title;

} else {
$menu_item->type_label = __('Custom');
$menu_item->title = $menu_item->post_title;
$menu_item->url = empty( $menu_item->url ) ? get_post_meta( $menu_item->ID, '_menu_item_url', true ) : $menu_item->url;
}

$menu_item->target = empty( $menu_item->target ) ? get_post_meta( $menu_item->ID, '_menu_item_target', true ) : $menu_item->target;

/**
* Filter a navigation menu item's title attribute.
*
* @since 3.0.0
*
* @param string $item_title The menu item title attribute.
*/
$menu_item->attr_title = empty( $menu_item->attr_title ) ? apply_filters( 'nav_menu_attr_title', $menu_item->post_excerpt ) : $menu_item->attr_title;

if ( empty( $menu_item->description ) ) {
/**
* Filter a navigation menu item's description.
*
* @since 3.0.0
*
* @param string $description The menu item description.
*/
$menu_item->description = apply_filters( 'nav_menu_description', wp_trim_words( $menu_item->post_content, 200 ) );
}

$menu_item->classes = empty( $menu_item->classes ) ? (array) get_post_meta( $menu_item->ID, '_menu_item_classes', true ) : $menu_item->classes;
$menu_item->xfn = empty( $menu_item->xfn ) ? get_post_meta( $menu_item->ID, '_menu_item_xfn', true ) : $menu_item->xfn;
} else {
$menu_item->db_id = 0;
$menu_item->menu_item_parent = 0;
$menu_item->object_id = (int) $menu_item->ID;
$menu_item->type = 'post_type';

$object = get_post_type_object( $menu_item->post_type );
$menu_item->object = $object->name;
$menu_item->type_label = $object->labels->singular_name;

if ( '' === $menu_item->post_title )
$menu_item->post_title = sprintf( __( '#%d (no title)' ), $menu_item->ID );

$menu_item->title = $menu_item->post_title;
$menu_item->url = get_permalink( $menu_item->ID );
$menu_item->target = '';

/** This filter is documented in wp-includes/nav-menu.php */
$menu_item->attr_title = apply_filters( 'nav_menu_attr_title', '' );

/** This filter is documented in wp-includes/nav-menu.php */
$menu_item->description = apply_filters( 'nav_menu_description', '' );
$menu_item->classes = array();
$menu_item->xfn = '';
}
} elseif ( isset( $menu_item->taxonomy ) ) {
$menu_item->ID = $menu_item->term_id;
$menu_item->db_id = 0;
$menu_item->menu_item_parent = 0;
$menu_item->object_id = (int) $menu_item->term_id;
$menu_item->post_parent = (int) $menu_item->parent;
$menu_item->type = 'taxonomy';

$object = get_taxonomy( $menu_item->taxonomy );
$menu_item->object = $object->name;
$menu_item->type_label = $object->labels->singular_name;

$menu_item->title = $menu_item->name;
$menu_item->url = get_term_link( $menu_item, $menu_item->taxonomy );
$menu_item->target = '';
$menu_item->attr_title = '';
$menu_item->description = get_term_field( 'description', $menu_item->term_id, $menu_item->taxonomy );
$menu_item->classes = array();
$menu_item->xfn = '';

}

/**
* Filter a navigation menu item object.
*
* @since 3.0.0
*
* @param object $menu_item The menu item object.
*/
return apply_filters( 'wp_setup_nav_menu_item', $menu_item );
}

/**
* Get the menu items associated with a particular object.
*
* @since 3.0.0
*
* @param int $object_id The ID of the original object.
* @param string $object_type The type of object, such as "taxonomy" or "post_type."
* @param string $taxonomy If $object_type is "taxonomy", $taxonomy is the name of the tax that $object_id belongs to
* @return array The array of menu item IDs; empty array if none;
*/
function wp_get_associated_nav_menu_items( $object_id = 0, $object_type = 'post_type', $taxonomy = '' ) {
$object_id = (int) $object_id;
$menu_item_ids = array();

$query = new WP_Query;
$menu_items = $query->query(
array(
'meta_key' => '_menu_item_object_id',
'meta_value' => $object_id,
'post_status' => 'any',
'post_type' => 'nav_menu_item',
'posts_per_page' => -1,
)
);
foreach( (array) $menu_items as $menu_item ) {
if ( isset( $menu_item->ID ) && is_nav_menu_item( $menu_item->ID ) ) {
$menu_item_type = get_post_meta( $menu_item->ID, '_menu_item_type', true );
if (
'post_type' == $object_type &&
'post_type' == $menu_item_type
) {
$menu_item_ids[] = (int) $menu_item->ID;
} else if (
'taxonomy' == $object_type &&
'taxonomy' == $menu_item_type &&
get_post_meta( $menu_item->ID, '_menu_item_object', true ) == $taxonomy
) {
$menu_item_ids[] = (int) $menu_item->ID;
}
}
}

return array_unique( $menu_item_ids );
}

/**
* Callback for handling a menu item when its original object is deleted.
*
* @since 3.0.0
* @access private
*
* @param int $object_id The ID of the original object being trashed.
*
*/
function _wp_delete_post_menu_item( $object_id = 0 ) {
$object_id = (int) $object_id;

$menu_item_ids = wp_get_associated_nav_menu_items( $object_id, 'post_type' );

foreach( (array) $menu_item_ids as $menu_item_id ) {
wp_delete_post( $menu_item_id, true );
}
}

/**
* Callback for handling a menu item when its original object is deleted.
*
* @since 3.0.0
* @access private
*
* @param int $object_id The ID of the original object being trashed.
*
*/
function _wp_delete_tax_menu_item( $object_id = 0, $tt_id, $taxonomy ) {
$object_id = (int) $object_id;

$menu_item_ids = wp_get_associated_nav_menu_items( $object_id, 'taxonomy', $taxonomy );

foreach( (array) $menu_item_ids as $menu_item_id ) {
wp_delete_post( $menu_item_id, true );
}
}

/**
* Automatically add newly published page objects to menus with that as an option.
*
* @since 3.0.0
* @access private
*
* @param string $new_status The new status of the post object.
* @param string $old_status The old status of the post object.
* @param object $post The post object being transitioned from one status to another.
* @return void
*/
function _wp_auto_add_pages_to_menu( $new_status, $old_status, $post ) {
if ( 'publish' != $new_status || 'publish' == $old_status || 'page' != $post->post_type )
return;
if ( ! empty( $post->post_parent ) )
return;
$auto_add = get_option( 'nav_menu_options' );
if ( empty( $auto_add ) || ! is_array( $auto_add ) || ! isset( $auto_add['auto_add'] ) )
return;
$auto_add = $auto_add['auto_add'];
if ( empty( $auto_add ) || ! is_array( $auto_add ) )
return;

$args = array(
'menu-item-object-id' => $post->ID,
'menu-item-object' => $post->post_type,
'menu-item-type' => 'post_type',
'menu-item-status' => 'publish',
);

foreach ( $auto_add as $menu_id ) {
$items = wp_get_nav_menu_items( $menu_id, array( 'post_status' => 'publish,draft' ) );
if ( ! is_array( $items ) )
continue;
foreach ( $items as $item ) {
if ( $post->ID == $item->object_id )
continue 2;
}
wp_update_nav_menu_item( $menu_id, 0, $args );
}
}

===================================================================

Is this a hacking?

Goran Tesic on "How to save Theme Customizer changes into .less file instead of inline css?"

0
0

First time I'm asking a question here so I apologize in advance if I'm breaking any rules.
I'm trying to build a theme with bootstrap 3 less. I managed to setup wordpress customizer options for color changing to work by outputting css into theme header, the classic way, but I was wondering if there is a way to output these options into .less file and compile the style.css with something like lessphp compiler, which I managed to integrate into the theme and which seems to work when I manually update less files.

Right now i'm outputing css into head by placing this function into functions.php:
[Moderator note: code fixed. Please wrap code in the backtick character or use the code button.]

<?php
//change colors
function le_libertaire_register_theme_customizer($wp_customize) {
    $colors = array();
    $colors[] = array(
      'slug' => 'header_text_color',
      'default' => '#fff',
      'label' => __('Header Text Color', 'Le-libertaire')
    );
    $colors[] = array(
      'slug' => 'navbar_bg_color',
      'default' => '#dc3023',
      'label' => __('Navbar BG Color', 'Le-libertaire')
    );

    foreach( $colors as $color ) {
      // SETTINGS
      $wp_customize->add_setting(
        $color['slug'], array(
          'default' => $color['default'],
          'type' => 'option',
          'capability' =>
          'edit_theme_options'
        )
      );
      // CONTROLS
      $wp_customize->add_control(
        new WP_Customize_Color_Control(
          $wp_customize,
          $color['slug'],
          array('label' => $color['label'],
          'section' => 'colors',
          'settings' => $color['slug'])
        )
      );
    }
}
add_action('customize_register', 'le_libertaire_register_theme_customizer');

?>

and this code into my header.php:

<?php
$navbar_bg_color = get_option('navbar_bg_color');
$header_text_color = get_option('header_text_color');
?>
<style>
    .navbar{background: <?php echo $navbar_bg_color ?> !important; }
    .navbar-brand, .navbar-nav a{color: <?php echo $header_text_color ?> !important;}
</style>

this is the function from functions.php which I'm using to integrate lessphp into wordpress:

<code></code>//compile less
function autoCompileLess() {

    // include lessc.inc
    require_once( get_template_directory().'/less/lessc.inc.php' );

    // input and output location
    $inputFile = get_template_directory().'/less/bootstrap.less';
    $outputFile = get_template_directory().'/style.css';

    // load the cache
    $cacheFile = $inputFile.".cache";

    if (file_exists($cacheFile)) {
        $cache = unserialize(file_get_contents($cacheFile));
    } else {
        $cache = $inputFile;
    }

    $less = new lessc;
    // create a new cache object, and compile
    $newCache = $less->cachedCompile($cache);

    // output a LESS file, and cache file only if it has been modified since last compile
    if (!is_array($cache) || $newCache["updated"] > $cache["updated"]) {
        file_put_contents($cacheFile, serialize($newCache));
        file_put_contents($outputFile, $newCache['compiled']);
   }
}

if(is_admin()) {
    add_action('init', 'autoCompileLess');
}

Can anyone tell me if there is a way to output these variables into, lets say wp-customizer.less file which would be included into bootstrap.less via @import, so that the output code in wp-customizer.less is formated like this

@brand-primary: #dc3023; @brand-success: #fff; where color hex code would be replaced by variable from customizer output?
So to be clear, I want to be able to compile new style.css every time the settings are changed because bloating the head with ton of inline css to achieve something which can be done by changing 3-4 less variables seems like a massive overkill to me. I already integrated lessphp into the theme which seems to work when less files are updated manually, so now I only need to find a way to export customizer settings into an external less file, which will then trigger lessphp compiler and do the trick. I searched all over the web for a solution but to no avail.

Is there a way to save these customizer settings into an external file instead of posting them to head as inline css?

laurgaut on "Required caption in insert media window"

0
0

Hi, my question is easy. I don't know how to make the caption's textarea (insert media window) required for user. Is it possible to do this?

Thank you.

chefhermes on "Website got hacked - Help needed"

0
0

Hi,
My website (chefhermes.com) got hacked nearly 3weeks ago.

The site is hosted with GoDaddy, who quite frankly have bee useless, to the point where I will be moving all my business away from them.
GoDaddy sold me a product called Site Lock, which again was useless. One of the things it flagged up was the Jetpack subscribers plugin widget, FFS.

Even after being 'cleaned' by Site Lock & little help from GoDaddy various problem now remain.

So I'll be looking for a decent hosting company, & a any recommendations for websecurity who can clean my site properly.

All suggestions gratefully received.

rolover on "how to rewrite urls"

0
0

i don't manage to make a rewrite work. I'm using a plugin to register it:

llamadas/([a-z_]+).html$ index.php?page_id=1051&pais=$matches[1]

If I type in the code manually it works, for example: /index.php?page_id=1051&pais=argentina

Wordpress changes the URL to /llamadas/?pais=argentina and loads the page correctly.

I want the URL to look like "llamadas/countrynamehere.html" and display correctly. I've got the rewrite on top before the others, but no luck.

Any ideas?

Thanks!

anoxy99 on "Wordpress files hacked no core files and insanely many rayban.html files"

0
0

Hello all,

I have a wordpress site i need to clean for a customer i have however never seen anything like this hack..
The core files wp-config.php wp-blockheader.php etc. Are all gone the site works flawless allthough which to me is very weird. Well now to the serious stuff this hack always create files so there are exactly 9992 files in the wordpress root folder if i delete one a new one is being made. The files have names like sunglasses-20150720-751895.html, rayban-20150720-745837.html and a lot of zip files too i have never seen this hack before so please if anyone knows how to fix it tell me how to do it! :)

Thanks and have a nice day! :)

Ersel on "No.of particular item Available, Required, Sold in e-store"

0
0

I have made an e-store having different types of items. I want to add a button named "Apply for this item" against each item. If user clicks on that button, A "1" should be added in total applied requests for that particular item.

Moreover, the following info. has to be displayed against each item in some beautiful way:

No.of "XYZ" Available
No.of "XYZ" Required
No.of "XYZ" Sold

And then if Only one item arrives at store, to whom this item should be allocated if their are so many requests for that item? Any suggestion.

Thanks in advance for every bit of clues!


iSaumya on "How to change the WordPress WHOIS URL"

0
0

I don't know whether this bothers anyone or not, but in wordpress by default it uses http://whois.arin.net/rest/ whether you recieve an email for a comment or even if you try fetch whois inside your dashboard.
What I'm asking is is there a way to use http://whois.domaintools.com/ instead of http://whois.arin.net/rest/ (as I really hate it) in everywhere the wordpress tries to do WHOIS search, so that wp returns me an url like http://whois.domaintools.com/122.162.93.94 instead of http://whois.arin.net/rest/ip/122.162.93.94.

Please not I'm not just talking abut the ip search I'm talking about IP + domain.

Any help will be appreciated.

jkloeblen on "Help With URL Injection Hacking"

0
0

I recently have received several emails from webmaster tools indicating that my website has been hacked through URL injection. How can I delete these newly created hacked pages and avoid it in the future?

Thanks.

Zoee on "User roles: edit_post set but custom post type & posts not editable"

0
0

Hi all,

I have a custom post type with the capability_type of "post".

I then have a new user role with the following set: 'read' => true, 'edit_posts' => true, 'delete_posts' => false, 'delete_pages' => false, 'moderate_comments' => false, 'edit_others_posts' => true, 'edit_pages' => true, 'edit_others_pages' => true, 'edit_published_pages' => true, 'publish_posts' => true, 'publish_pages' => true, 'administrator' => true,

Pages are viewable and editable no problems. But but my custom post type AND posts are only viewable when logged in as this new role...

I can't figure out whats going on. They should both be editable...

Any ideas??

AliriusAmstad on "Video hosted on Amazon's Bucket can't play on WP"

0
0

I use Explaindio Video Services to play my videos on websites and I am trying to get it to work on my WP site. The problem is that none of the embed codes are working in the pages. I have tried to use some of the plug-ins but that does not give me the functionality that the Explaindio gives me, plus I can't get them to working right. I get a html5 error when I try to use them. How can I get the WP to recognize the javascript embed code for the Explaindio player?

pesunites on "Custom Post Type as Child of Page – the proper way?"

0
0

Hi all,

after looking through these forums and Stack Exchange for an hour, I have no choice but as the community for help. Thanks in advance!

I created a custom post type called "player" for a sports website. This CPT should be the child of a static page (http://domain.de/player/) which will later be an overview page of all the players.

I made everything work, even the permalinks look fine and I am quite happy if it wasn't for one thing.

In the beginning, I decided to make the setting 'has_archive' => false – as I do not plan to use any archives for this CPT. I then encountered the problem, that my breadcrumbs (I am using Yoast SEO) didn't look the way I wanted (Domain > Player > CPT name). In the Yoast SEO support forum, I was advised to switch "has_archive" to true and indeed this solved my problem.

However, now WordPress creates a rewrite rule, redirecting http://domain.de/player/ to the post archive instead of my static overview page.

Whatever I do, I cannot make both work – either the breadcrumbs are missing the parent page or my player page is redirected to the CPT post archive.

I tried a lot but did not find a final solution – but this must be possible, right?

Viewing all 8245 articles
Browse latest View live




Latest Images