unique post in “$args” of wp_query display more than one post

I am pretty sure that the Category parameters cannot be combined with p. In the documentation it says: “Show posts associated with certain categories.” and none of the examples combine a category with a single post like you are trying to do.

Instead I think you need to use a taxonomy query as such:

$args = [
    'post_type' => 'post', 
    'p'=>(int)$_POST['the_ID'], 
    'tax_query' => [
        [
            'taxonomy'=>'category',
            'field'=>'slug',
            'terms'=>'materials'
        ]
    ]
];

Give that a try and remember to mark this as the answer if it solves your problem.

Also, be sure you are getting the right ID. In the code sample you provided, the_ID() is definitely not what you want. the_ID() echos the value of the ID to the output. What you probably want instead is get_the_ID() but even that will be wrong in this context (retrieving a single post by ID as defined by the input coming from the GET request).

And also, if you are plucking the ID from $_POST or $_GET, be sure to sanitize it prior to using it in your query (although, I’m pretty sure WordPress also sanitizes input prior to running the query, you can never be too safe).

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)