Embark on a journey of knowledge! Take the quiz and earn valuable credits.
Take A QuizChallenge yourself and boost your learning! Start the quiz now to earn credits.
Take A QuizUnlock your potential! Begin the quiz, answer questions, and accumulate credits along the way.
Take A QuizGeneral Tech Bugs & Fixes 2 years ago
Posted on 16 Aug 2022, this text provides information on Bugs & Fixes related to General Tech. Please note that while accuracy is prioritized, the data presented might not be entirely correct or up-to-date. This information is offered for general knowledge and informational purposes only, and should not be considered as a substitute for professional advice.
I was hoping for some wordpress-integrated function to get me the needed values in a few lines of code, but with @disinfor's hint I dug a bit into the wordpress database and came to the following results:
wp_posts.post_title
is the title of the imagewp_posts.post_excerpt
is the caption of the imagewp_posts.post_content
is the content of the image's media page (not relevant here)wp_postmeta.meta_value WHERE meta_key='_wp_attachment_image_alt'
is the alt-text of the imageCode below:
function img_shortcode($atts) {
global $wpdb;
try {
$conn = new \PDO("mysql:host=" . constant('DB_HOST') . ";dbname=" . constant('DB_NAME'), constant("DB_USER"), constant("DB_PASSWORD"));
// set the PDO error mode to exception
$conn->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
$sql = "SELECT post_title, post_excerpt FROM `". $wpdb->prefix . "posts` WHERE ID=". $atts[0];
$stmt = $conn->prepare($sql);
$stmt->execute();
$img = $stmt->fetch(\PDO::FETCH_ASSOC);
$title = $img['post_title'];
$caption = $img['post_excerpt'];
$sql = "SELECT meta_value FROM `". $wpdb->prefix . "postmeta` WHERE (post_id=". $atts[0] ." AND meta_key='_wp_attachment_image_alt')";
$stmt = $conn->prepare($sql);
$stmt->execute();
$alt = $stmt->fetch(\PDO::FETCH_ASSOC)['meta_key'];
}
catch(PDOException $e) {
echo "Connection failed: " . $e->getMessage();
return NULL;
}
// todo: generate html from $alt, $title and $caption (and optionally further shortcode attributes)
}
add_shortcode('img', 'img_shortcode'); // Signature: [img 126] to render image with media id 126
No matter what stage you're at in your education or career, TuteeHub will help you reach the next level that you're aiming for. Simply,Choose a subject/topic and get started in self-paced practice sessions to improve your knowledge and scores.
General Tech 10 Answers
General Tech 7 Answers
General Tech 3 Answers
General Tech 9 Answers
Ready to take your education and career to the next level? Register today and join our growing community of learners and professionals.
manpreet
Best Answer
2 years ago
My problem: How to pull the media data out of the database">database in PHP?
I'd like to write a shortcode that renders an image with the alt-text and caption taken automatically from the media database">database. Usage-example:
Intended Output: