Faits :
A.
Le 21 juillet 2017, A._ a déposé plainte pénale contre X._. Elle lui a en substance reproché de l'avoir traitée de "pute" au cours d'une conversation téléphonique du 27 juin 2017. Elle a précisé que l'intéressée se serait ensuite vantée de cet événement sur Facebook et a joint à sa plainte une capture d'écran figurant un message publié par X._ sur ce réseau social.
Par ordonnance pénale et de non-entrée en matière du 30 janvier 2018, le Ministère public de la République et canton de Genève a condamné X._ pour diffamation en raison du message précité publié sur Facebook. Il a par ailleurs refusé d'entrer en matière concernant les propos qui auraient été tenus par la prénommée lors de la conversation téléphonique du 27 juin 2017. Ensuite de l'opposition formée par X._ contre cette ordonnance, la cause a été transmise au Tribunal de police genevois.
Par ordonnance du 26 juillet 2018, le Tribunal de police genevois a classé la procédure pénale ouverte contre X._. Il a considéré que la plainte du 21 juillet 2017 visait exclusivement les propos prêtés à X._ le 27 juin 2017 et non le contenu du message publié par cette dernière sur Facebook.
B.
Par arrêt du 21 novembre 2018, la Chambre pénale de recours de la Cour de justice genevoise a rejeté le recours formé par A._ contre l'ordonnance du 26 juillet 2018.
C.
A._ forme un recours en matière pénale au Tribunal fédéral contre l'arrêt du 21 novembre 2018, en concluant, avec suite de frais et dépens, principalement à sa réforme en ce sens que X._ est condamnée et, subsidiairement, à son annulation et au renvoi de la cause à l'autorité cantonale pour nouvelle décision.

Considérant en droit :
1.
1.1. Selon l'art. 81 al. 1 let. a et b ch. 5 LTF, la partie plaignante qui a participé à la procédure de dernière instance cantonale est habilitée à recourir au Tribunal fédéral, si la décision attaquée peut avoir des effets sur le jugement de ses prétentions civiles. Constituent de telles prétentions celles qui sont fondées sur le droit civil et doivent en conséquence être déduites ordinairement devant les tribunaux civils. Il s'agit principalement des prétentions en réparation du dommage et du tort moral au sens des <ref-law>. En vertu de l'<ref-law>, il incombe à la partie recourante d'alléguer les faits qu'elle considère comme propres à fonder sa qualité pour recourir. Lorsque le recours est dirigé contre une décision de non-entrée en matière ou de classement de l'action pénale, la partie plaignante n'a pas nécessairement déjà pris des conclusions civiles. Quand bien même la partie plaignante aurait déjà déclaré des conclusions civiles (cf. <ref-law>), il n'en reste pas moins que le ministère public qui refuse d'entrer en matière ou prononce un classement n'a pas à statuer sur l'aspect civil (cf. <ref-law>). Dans tous les cas, il incombe par conséquent à la partie plaignante d'expliquer dans son mémoire au Tribunal fédéral quelles prétentions civiles elle entend faire valoir contre l'intimé. Comme il n'appartient pas à la partie plaignante de se substituer au ministère public ou d'assouvir une soif de vengeance, la jurisprudence entend se montrer restrictive et stricte, de sorte que le Tribunal fédéral n'entre en matière que s'il ressort de façon suffisamment précise de la motivation du recours que les conditions précitées sont réalisées, à moins que l'on puisse le déduire directement et sans ambiguïté compte tenu notamment de la nature de l'infraction alléguée (<ref-ruling> consid. 1.1 p. 4). Les mêmes exigences sont requises à l'égard de celui qui se plaint d'infractions attentatoires à l'honneur (arrêt 6B_1317/2018 du 28 janvier 2019 consid. 2.1 et les références citées).
En l'espèce, la recourante attaque une décision de la cour cantonale confirmant une ordonnance de classement. Elle n'évoque toutefois aucunement l'existence d'éventuelles prétentions civiles, ce qui exclut sa qualité pour recourir sur la base de l'art. 81 al. 1 let. b ch. 5 LTF.
1.2. Selon l'art. 81 al. 1 let. b ch. 6 LTF, le plaignant a qualité pour former un recours en matière pénale pour autant que la contestation porte sur le droit de porter plainte.
En l'occurrence, il paraît douteux que la recourante puisse fonder sa qualité pour recourir sur cette disposition, dès lors que la cour cantonale ne lui a aucunement dénié le droit de déposer plainte ni n'a remis en cause la validité formelle de la plainte du 21 juillet 2017. L'autorité précédente a estimé que les comportements reprochés à X._ dans l'ordonnance pénale valant acte d'accusation n'avaient pas été visés par la plainte en question, ce qui justifiait un classement de la procédure sur la base de l'<ref-law>.
La question peut cependant être laissée ouverte, compte tenu de ce qui suit.
2.
La recourante fait grief à la cour cantonale d'avoir retenu que le contenu du message publié sur Facebook par X._, dont une reproduction avait été jointe en annexe à sa plainte du 21 juillet 2017, n'était pas visé par ladite plainte.
2.1. Le Tribunal fédéral n'est pas une autorité d'appel, auprès de laquelle les faits pourraient être rediscutés librement. Il est lié par les constatations de fait de la décision entreprise (<ref-law>), à moins qu'elles n'aient été établies en violation du droit ou de manière manifestement inexacte au sens des art. 97 al. 1 et 105 al. 2 LTF, soit pour l'essentiel de façon arbitraire au sens de l'art. 9 Cst. Une décision n'est pas arbitraire du seul fait qu'elle apparaît discutable ou même critiquable; il faut qu'elle soit manifestement insoutenable et cela non seulement dans sa motivation mais aussi dans son résultat (<ref-ruling> consid. 2.3.1 p. 244). En matière d'appréciation des preuves et d'établissement des faits, il n'y a arbitraire que lorsque l'autorité ne prend pas en compte, sans aucune raison sérieuse, un élément de preuve propre à modifier la décision, lorsqu'elle se trompe manifestement sur son sens et sa portée, ou encore lorsque, en se fondant sur les éléments recueillis, elle tire des conclusions insoutenables (<ref-ruling> consid. 1.1 p. 503; <ref-ruling> consid. 2.3 p. 266 et les références citées). Le Tribunal fédéral n'entre pas en matière sur les critiques de nature appellatoire (<ref-ruling> consid. 2.4 p. 368 et les références citées).
Déterminer ce qu'une personne a su, envisagé, voulu ou accepté relève des constatations de fait (<ref-ruling> consid. 12 p. 152; <ref-ruling> consid. 6.3 p. 375).
2.2. Si une infraction n'est punie que sur plainte, toute personne lésée peut porter plainte contre l'auteur (<ref-law>).
Une plainte est valable selon l'<ref-law> si l'ayant droit, avant l'échéance d'un délai de trois mois depuis que l'auteur de l'infraction lui est connu (<ref-law>), manifeste sa volonté inconditionnelle que l'auteur de l'infraction soit poursuivi et que la procédure pénale se poursuive sans autre déclaration de sa volonté (<ref-ruling> consid. 2.3.4 p. 387; <ref-ruling> consid. 3.1 p. 98), dans les formes et auprès des autorités compétentes selon l'<ref-law> (arrêts 6B_1297/2017 du 26 juillet 2018 consid. 1.1.1; 6B_942/2017 du 5 mars 2018 consid. 1.1). La plainte doit exposer le déroulement des faits sur lesquels elle porte, afin que l'autorité pénale sache pour quel état de fait l'ayant droit demande une poursuite pénale. Elle doit contenir un exposé des circonstances concrètes, sans qu'il soit nécessaire qu'elles soient absolument complètes. Ainsi, en cas d'injures par exemple, il n'est pas nécessaire que la plainte reproduise exactement les termes injurieux. La qualification juridique des faits incombe aux autorités de poursuite (ATF <ref-ruling> consid. 3 p. 98 s.; arrêts 6B_1297/2017 précité consid. 1.1.1; 6B_942/2017 précité consid. 1.1). En présence d'un ensemble de faits, le lésé a la possibilité de limiter sa plainte à certains d'entre eux (ATF <ref-ruling> consid. 3.1 p. 98; <ref-ruling> consid. 2a p. 3; <ref-ruling> consid. 2 p. 75).
2.3. La cour cantonale a exposé que le contenu de la plainte pénale du 21 juillet 2017 ne prêtait pas à discussion. La recourante y avait expliqué saisir la justice sur les recommandations de deux personnes, dont le destinataire de l'appel téléphonique du 27 juin 2017. Elle avait ajouté que l'auteur de cet appel voulait lui nuire et que pareil événement s'était déjà produit par le passé. La recourante avait terminé en précisant que, deux jours après les événements du 27 juin 2017, X._ s'était vantée sur Facebook d'être intervenue de cette façon. Selon l'autorité précédente, la plainte était donc circonscrite au contenu de l'appel téléphonique du 27 juin 2017 mais ne s'étendait pas au contenu du message publié sur le réseau social. Ce message n'avait été produit que parce qu'il avait, aux yeux de la recourante, la valeur d'un "aveu". Pour la cour cantonale, l'intéressée avait ainsi limité sa dénonciation aux événements du 27 juin 2017, à propos desquels le ministère public avait refusé d'entrer en matière.
2.4. En l'espèce, la cour cantonale a constaté, d'une manière qui lie le Tribunal fédéral (cf. <ref-law>), que la recourante avait voulu, par sa plainte du 21 juillet 2017, dénoncer les propos qu'aurait tenus X._ lors d'une conversation téléphonique du 27 juin 2017. L'intéressée y liait expressément le dépôt de plainte aux recommandations de B._, lequel aurait reçu le coup de téléphone litigieux. Elle y décrivait ensuite la teneur des propos prêtés à X._, pour conclure à son souhait de voir cette dernière poursuivie pour diffamation. La recourante mentionnait encore les coordonnées de B._, lequel devait permettre aux autorités pénales d'entreprendre "les démarches légales suffisantes et nécessaires pour arrêter et sanctionner Mme X._". Elle précisait que la prénommée avait déjà passé "ce genre d'appel" par le passé, mais que, "sans dépôt de plainte, elle s'[était] permis de recommencer". A propos du message publié sur Facebook, la recourante a indiqué ce qui suit :
"[X._] se vante publiquement de ce genre d'acte diffamatoire sur les réseaux sociaux, ce qui constitue des aveux, comme vous pourrez le constater sur la copie d'écran jointe."
La recourante a enfin achevé sa plainte de la manière suivante :
"Mme X._ m'insulte régulièrement par le biais des réseaux sociaux, de mes beaux parents, et parents. Devant la Justice, elle tente de se faire passer pour une victime alors que c'est elle le bourreau. Je vous demande de bien vouloir faire tout ce qui est en votre pouvoir afin qu'elle soit punie pour ses agissements inacceptables et qu'elle arrête de me nuire."
Ainsi, la plainte du 21 juillet 2017 était intégralement consacrée à la description et à la mise en contexte des événements du 27 juin 2017. Il n'était nullement insoutenable, pour la cour cantonale, de retenir que la recourante n'avait pas, dans cette plainte, visé d'autres agissements prêtés à X._. Contrairement à ce que soutient l'intéressée, il n'était pas arbitraire de considérer que le dernier paragraphe de la plainte, par lequel celle-ci se plaignait d'être régulièrement insultée sur les réseaux sociaux, n'avait pas pour but de dénoncer tous les propos éventuellement diffamatoires publiés sur lesdits réseaux. La recourante n'a en effet pas produit, à l'appui de sa plainte, divers messages publiés sur des réseaux sociaux par X._, mais uniquement celui par lequel elle entendait prouver que cette dernière avait bien passé l'appel téléphonique du 27 juin 2017. En outre, sur la capture d'écran jointe en annexe de la plainte, l'intéressée a surligné différents éléments, comme la date du message et son "statut" sur Facebook, mais aucunement les termes contenus dans celui-ci.
2.5. Compte tenu de ce qui précède, l'autorité précédente pouvait, sans violer le droit fédéral, considérer qu'aucune plainte pénale n'avait été déposée concernant le contenu du message publié sur Facebook par X._, la recourante ayant circonscrit sa plainte du 21 juillet 2017 aux événements du 27 juin 2017. Conformément à la jurisprudence (cf. consid. 2.2 supra), il n'était certes pas nécessaire que la recourante indiquât expressément, dans sa plainte, tous les termes qu'elle considérait comme constitutifs d'une infraction pénale. Celle-ci devait en revanche exposer clairement quel événement elle entendait voir poursuivi par les autorités pénales, dès lors que ces dernières n'étaient pas intervenues préalablement dans l'affaire ni n'avaient documenté la cause à l'interne et ne pouvaient être considérées comme "au clair" sur l'état de fait pour lequel la poursuite était requise (cf. arrêt 6B_1297/2017 précité consid. 1.1.1 et les références citées). Pour le reste, il n'appartenait pas aux autorités pénales de rechercher si des éléments évoqués par la recourante ou des pièces fournies en annexe à sa plainte pouvaient fonder des poursuites concernant des agissements qui n'avaient pas été expressément dénoncés.
3.
Le recours doit être rejeté dans la mesure où il est recevable. La recourante, qui succombe, supporte les frais judiciaires (<ref-law>).

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté dans la mesure où il est recevable.
2.
Les frais judiciaires, arrêtés à 3'000 fr., sont mis à la charge de la recourante.
3.
Le présent arrêt est communiqué aux parties et à la Cour de justice de la République et canton de Genève, Chambre pénale de recours.
Lausanne, le 15 février 2019
Au nom de la Cour de droit pénal
du Tribunal fédéral suisse
Le Président : Denys
Le Greffier : Graa