• Hey there guys!
    I wrote this couple of functions, that alternate a exploded Custom Field string with the post permalink:

    (where the Custom Field should look like this: ex. Google++https://google.com”)

    // Custom Permalink
    function custom_permalink($url){
        global $post;
        $link = get_post_meta($post->ID,'link',true);
        if ($link) {
            $pieces = explode("++", $link);
            $url = $pieces[1];
        } else {
            $url = the_permalink();
        }
        return $url;
    }
    
    // Via Text
    function via_text($url){
        global $post;
        $link = get_post_meta($post->ID,'link',true);
        if ($link) {
            $pieces = explode("++", $link);
            $url = ' <span><a href="'.$pieces[1].'">Via '.$pieces[0].'</a></span>';
        } else {
            $url = ' ';
        }
        return $url;
    }

    … which work all right when tested on a MAMP server, but when deployed they return:

    “Warning: Missing argument 1 …”

    Any idea why this might be happening?

Viewing 2 replies - 1 through 2 (of 2 total)
  • Thread Starter ameraz

    (@ameraz)

    The strangest thing is that even when deployed the functions return the expected outcome after the “Warning: Missing argument 1…” leyend

    ex.

    <div id="excerpt">
    Lorem ipsum dolor sit amet...
    <br>
    <b>Warning</b>
    : Missing argument 1 for via_text(), called in /home/.../index.php on line 24 and defined in
    <b>/home/.../functions.php</b>
    on line
    <b>80</b>
    <br>
    <span>
    <a href="https://google.com">Via Google</a>
    </span>
    </div>
    Thread Starter ameraz

    (@ameraz)

    Ok… I figured it out…
    this happens when a class gets instantiated and theres no default argument for the constructor…

    here are the working functions…

    // Custom Permalink
    	function custom_permalink($url='') {
    		global $post;
    		$link = get_post_meta($post->ID,'link',true);
    		if ($link) {
    			$pieces = explode("++", $link);
    			$url = $pieces[1];
    		} else {
    			$url = the_permalink();
    		}
    		return $url;
    	}
    
    	// Via Text
    	function via_text($url='') {
    		global $post;
    		$link = get_post_meta($post->ID,'link',true);
    		if ($link) {
    			$pieces = explode("++", $link);
    			$url = ' <span><a href="'.$pieces[1].'">Via '.$pieces[0].'</a></span>';
    		} else {
    			$url = ' ';
    		}
    		return $url;
    	}

    in case anyone is in need…
    what they do:

    in case theres a post with the Custom Field ‘link’ (like so: Google++https://google.com) the function will replace the permalink with the Custom Link. So in the theme call: echo custom_permalink(); … instead of the_permalink();

    the via_text() function works a little different; it calls a span tag with the Custom Field ‘link’ exploded like so:

    <span><a href="https://google.com">Via Google</a></span>

    hope this works for somebody else

    ??

Viewing 2 replies - 1 through 2 (of 2 total)
  • The topic ‘Function returning: Warning: Missing argument 1’ is closed to new replies.