Wearing one's heart/feelings on one's shoulder

Solution 1:

To "wear your heart on your sleeve" and also "green sleeves" were derived from (by folklore) Irish country lads asking a girl out on a picnic on a Sunday afternoon. If either the girl or the boy returned with grass stains on their sleeves it was assumed that they were "lovers" (that is, that they were kissing each other). So it was said that they "wore their hearts on their sleeves" (or they had "green sleeves"--which is a title for a traditional English song).

Wiki gives a less wholesome reading on "greensleeves" that I don't subscribe to.

https://en.wikipedia.org/wiki/Greensleeves

A possible interpretation of the lyrics is that Lady Green Sleeves was a promiscuous young woman, perhaps even a prostitute.[7] At the time, the word "green" had sexual connotations, most notably in the phrase "a green gown", a reference to the grass stains on a woman's dress from engaging in sexual intercourse outdoors.[8] An alternative explanation is that Lady Green Sleeves was, through her costume, incorrectly assumed to be sexually promiscuous. Her "discourteous" rejection of the singer's advances supports the contention that she is not.[8]

I agree with others who suggested that this is a mixed metaphor.