How to make more realistic motion

Hi. I’ve been working on an animation, and I can’t seem to get the character to move properly.

At the moment, I am moving the IK targets of the legs and separately keyframing the motion of the armature object. As a result, it sometimes looks like the character is sliding along the ground :

Is there any way to get the IK targets of the legs to drive the armature forward?

A good trick to get rid of the foot slide when moving a walkcycle forward is to keep the foot ik target in linear interpolation (as well as the hips location (or whatever you have there in your case).
Then go to the first frame where a foot is supposed to be touching the ground and note the location of the ik target of the dimension he is moving in. Then go to the last frame before the foot comes off the ground and note the same things again.
The difference between the two values you just noted is the relative motion you are looking for.
Now you can go in and keyframe either your main bone or the whole thing in object mode to move the same distance in the reverse direction.
Lastly you can press SHIFT + E and click “linear extrapolation” in the graph editor.
You should now have an endless straight forward motion with no footslide.

(to get some weight into the motion you will have to get some up and down and rotation in the rest of the body, too)