PHPFixing
  • Privacy Policy
  • TOS
  • Ask Question
  • Contact Us
  • Home
  • PHP
  • Programming
  • SQL Injection
  • Web3.0

Saturday, January 15, 2022

[FIXED] php wordpress function returning Warning: Missing argument 1

 January 15, 2022     function, mamp, warnings, wordpress     No comments   

Issue

I wrote this couples of functions, that alternate a exploded Custom Field string with the post permalink:

(where the Custom Field should look like this: ex. Google++http//: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?


Solution

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++http://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="http://google.com">Via Google</a></span>

hope this works for somebody else

:)



Answered By - ameraz
  • Share This:  
  •  Facebook
  •  Twitter
  •  Stumble
  •  Digg
Newer Post Older Post Home

0 Comments:

Post a Comment

Note: Only a member of this blog may post a comment.

Total Pageviews

Featured Post

Why Learn PHP Programming

Why Learn PHP Programming A widely-used open source scripting language PHP is one of the most popular programming languages in the world. It...

Subscribe To

Posts
Atom
Posts
Comments
Atom
Comments

Copyright © PHPFixing