WordPress Code To Improve Bulk Insert Or Update Post Speed

WordPress Code To Improve Bulk Insert Or Update Post Speed

When you hit tens of thousands of posts in WordPress, the speed of wp_insert_post or wp_update_post gets significantly slower. To improve the speed, you simply add the following code and you will see that the speed improves significantly.

Add these two lines of code before your insert or update loop

wp_defer_term_counting(true); 
wp_defer_comment_counting(true);

And add these two lines after your insert or update loop

wp_defer_term_counting(false);
wp_defer_comment_counting(false);

By adding these few lines of code, you are temporarily disabling the term counts until all posts have been inserted or updated to speed up the process

Enjoyed the content ? Share it with your friends !

PHP PhantomJS Change User Agent String

PHP PhantomJS Change User Agent String

Noticed that google isn’t really useful in this case (there’s no copy and paste answer). Google for me only shows a bunch of people having issues and no easy solution when in fact the solution is quite simple

First things first, you have to check to see if your PHP-PhantomJs library version is 3.x or 4.x

If it is 3.x, to change the user-agent string, you just have to do this

$request->addSetting('userAgent', 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0');

If it is 4.x, to change the user-agent string, you just have to do this

$request->addHeader('User-Agent', 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0');

Of course, feel free to change the new value of your user-agent to whatever you want it to be.

To verify that it is working, if your testing locally, then you can use tools such as Fiddler to check the headers. Alternatively, you can dump out the $request and $response variables, like so,

var_dump($request); // $request is the return value of either createRequest or createCaptureRequest function
var_dump($response); // $response is the return value of createResponse function

If you have any questions feel free to let me know in the comments below.

 

 

Enjoyed the content ? Share it with your friends !

WordPress Find Categories By Name

WordPress Find Categories By Name

The below works for both categories, and other custom taxonomies (e.g genres) you may have.

Find category by an exact match

$cat = get_term_by( 'name', $cat_name, 'category' );

Find category by partial match anywhere

$categories = get_terms( 'category', array( 'name__like' => 'cat_name' ) );

Find category by partial match from the start of the string

$categories = get_terms( 'category', array( 'search' => 'cat_name' ) );
Enjoyed the content ? Share it with your friends !

Javascript Block Source Code Inspection

Javascript Block Source Code Inspection

You may not want users to look at your html, css, or javascript codes. Hence you are here at this page.

You should take not however that, as html/css/javascript is rendered on the client-side, there is no complete way of blocking the user from viewing your code. You can, however, block out the newbies who are attempting this (which would probably account for over 90% of them). Also, know that blocking source code inspection may mean that your site is less user-friendly and may end up irritating legitimate users.

I have prepared a jsfiddle should you wish to test the code. Now, onto the actual code …

Blocking Right Clicks

To block a specific element (and its children) from being right clickable,

// block a specific element (and all its children) from being right-clicked
// use it like so : disable_rightclick("container_id");
function disable_rightclick(element_id)
{
    var elem = document.getElementById(element_id);
    elem.oncontextmenu = function() {return false;};
}

To block the entire page from being right clickable,

document.oncontextmenu = function() {return false;};

 

Blocking Hotkeys

The commonly used hotkeys for source code inspections are

  • Right Click -> Inspect Element (Hotkey: CTRL + SHIFT + I)
  • Right Click -> View Page Source (Hotkey: CTRL + U)

To block the above hotkeys, put the following codes on your page

document.onkeydown = function(e) {
    if(e.keyCode == 123) {
        return false;
    }
    if(e.ctrlKey && e.shiftKey && e.keyCode == 'I'.charCodeAt(0)){
        return false;
    }
    if(e.ctrlKey && e.shiftKey && e.keyCode == 'J'.charCodeAt(0)){
        return false;
    }
    if(e.ctrlKey && e.keyCode == 'U'.charCodeAt(0)){
        return false;
    }

    if(e.ctrlKey && e.shiftKey && e.keyCode == 'C'.charCodeAt(0)){
        return false;
    }      
}

CONCLUSION

Hopefully with these, you are able to block off users will ill-intent. Do remember that you will be sacrificing usability for security and you should determine for yourself if the trade-off is worth it or not.

Enjoyed the content ? Share it with your friends !

C# How to compile ConfuserEx

C# How to compile ConfuserEx

ConfuserEx is an open-source, free protector for .NET applications. The product itself is great, but the code and internals are even greater – it allows us to learn how it works and study them. So for anyone who is interested in the nitty-gritty, technical aspect of how obfuscators work, ConfuserEx is a great source to learn from.

For programmers who are relatively new, chances are that you will come into problems when trying to compile open-source projects with a larger codebase. This is because these projects (such as ConfuserEx) will rely on various modules and dependencies that you may not have.

How To Compile

First, ensure that you have these installed

  1. Visual Studio 2017 (Download Here)
  2. .NET Core 2.1 or later (Download Here)

Second, download the latest ConfuserEx solution from their github

Third, extract it to wherever you want to. After extraction, check to ensure that the dnlib folder is not empty (mine was when I tried). If it is empty, go to ConfuserEx github and download the folder manually (not the entire solution). The folder name should be dnlib @ <snipped hash> .Then, copy the dnlib solution into the empty dnlib folder

Fourth, open up the solution file that is named Confuser2.sln

Fifth, enter CTRL+SHIFT+B to build the solution. Hopefully everything goes well and it compiles, if it doesn’t, let me know in the comments below and I will see how I can help you.

 

 

 

Enjoyed the content ? Share it with your friends !